반응형

DCL (Data Control Language)

= 데이터 제어어(계정)
- 데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의하는데 사용하는 언어
- 데이터를 제어하는 기능
**TCL포함
GRANT : 계정에 권한 부여
REVOKE : 계정에 권한 회수

권한관리

사용자에 의해 사용되는 권한 (1개씩)
- CREATE SESSION : 데이터베이스에 연결할 수 있는 권한, USER로 연결(접속)할 수 있는 권한
- CREATE TABLE : 테이블을 생성할 수 있는 권한 
- CREATE VIEW : 뷰를 생성할 수 있는 권한
- CREATE SQUENCE : 시퀀스를 생성할 수 있는 권한
- CREATE PROCDURE : 함수를 생성할 수 있는 권한
- insufficient privileges : 권한이 없는 상태에서 입력시 나오는 오류
CONNECT 롤 :
- 사용자가 DB에 접속 가능하도록 가장 기본적인 시스템 권한을 묶어 놓았다.
- CREATE TABLE, CREATE SEQUENCE, CREATE CLUSTER, CREATE SESSION, ALTER SESSION, CREATE SYNONYM, CREATE DATABASE LINK
RESOURCE 롤 :
- 유저를 생성하면 일반적으로 CONNECT, RESOURCE롤을 부여 한다.
- 사용자가 객체를 생성할 수 있도록 시스템 권한을 묶어 놓았다.
- CREATE TABLE, CREATE SEQUENCE, CREATE CLUSTER, CREATE TRIGGER, CREATE PROCEDURE
SQL>  SET LINESIZE 300

--[USER생성, P/W설정]
SQL> CREATE USER ORAUSER01 IDENTIFIED BY 1234;

--[P/W변경]
SQL> ALTER USER ORAUSER01 IDENTIFIED BY 1111;

--[USER삭제]
SQL> DROP USER ORAUSER02 CASCADE;

--[현재 사용자의 시스템 권한 확인]
SQL> SELECT * FROM SESSION_PRIVS;

--[현재 사용자 보기]
SQL> SHOW USER

--[현재 모든 USER 조회]
SQL> SELECT * FROM ALL_USERS;

SQL> CONN / AS SYSDBA
 

권한 부여 및 회수

1. 선택적 권한부여
: DBA권한을 가진 USER가, 자신의 계정에 접근하는 USER의 권한을 선택하여 부여할 수 있다.
GRANT SELECT ON [스키마명(계정명)]. [TABLE NAME] TO [USER] ;
GRANT INSERT ON [스키마명(계정명)]. [TABLE NAME] TO [USER] ;
GRANT DELETE ON [스키마명(계정명)]. [TABLE NAME] TO [USER] ;
GRANT UPDATE ON [스키마명(계정명)]. [TABLE NAME] TO [USER] ;

-- 또는
GRANT SELECT, INSERT, DELETE, UPDATE ON [스키마명(계정명)]. [TABLE NAME] TO [USER] ;
--권한 부여
SQL> GRANT CREATE SESSION TO ORAUSER01;
SQL> GRANT CONNECT, RESOURCE TO ORAUSER02;

--선택적 권한 부여
SQL> GRANT INSERT ON TEST.DEPT TO ORAUSER;
2. 선택적 권한회수
REVOKE SELECT ON [스키마명(계정명)]. [TABLE NAME] FROM [USER] ;
REVOKE INSERT ON [스키마명(계정명)]. [TABLE NAME] FROM [USER] ;
REVOKE DELETE ON [스키마명(계정명)]. [TABLE NAME] FROM [USER] ;
REVOKE UPDATE ON [스키마명(계정명)]. [TABLE NAME] FROM [USER] ;

-- 또는
REVOKE SELECT, INSERT, DELETE, UPDATE ON [TABLE NAME] FROM [USER] ;
--권한 회수
SQL> REVOKE CREATE SESSION FROM ORAUSER01;

--선택적 권한 회수
SQL> REVOKE DELETE, UPDATE, INSERT ON DEPT FROM ORAUSER;


Revoke succeeded.
- 다른 계정에  SELECT, INSERT, DELETE, UPDATE
모든(ALL) 권한 부여 ;

GRANT ALL ON 테이블명 TO USER명 ;

- 다른 계정에 모든 테이블에 대한 SELECT 권한 부여 ;
GRANT SELECT ON ANY TABLE TO USER명 ;

GRANT ALL ON ANY TABLE TO ORAUSER ; 
-- ALL과 ANY는 같이 사용 할 수 없다.

권한을 부여 받았으므로 LION으로 접속함.

SQL> GRANT ALL ON DEPT TO ORAUSER;

 

Oracle DB 사용자명/유저명 변경(alter user rename)

간헐적으로 DB 사용자명을 변경해야 할 때가 있다. 한두 명의 사용자 계정이면 삭제 후에 생성 및 권한을 부여하겠지만 대량의 사용자명을 변경해야 할 경우는 일일이 처리하기에는 부담이 될 수 있다. 이럴 때 아래의 방법을 참고하기 바란다. 
단 RESTRICTED SESSION 모드로 실행해야 하므로 DB 사용을 하지 않는 시점에 작업을 진행해야 한다.
-- 사용자명 변경을 위한 파라메터 변경 
alter session set "_enable_rename_user" = true; 
alter system enable restricted session; 
-- 사용자명 변경 
alter user "dbtech" rename to p_dbtech identified by "a1234567!"; 
alter user "dbsolution" rename to t_dbsolution identified by "a1234567!"; 
-- 파라메터 원복 
alter session set "_enable_rename_user" = false; 
alter system disable restricted session; 
-- DB 접속 확인
반응형

'[ORACLE]' 카테고리의 다른 글

[ORACLE] 계정 비밀번호 만료기간 해제 및 변경  (0) 2024.01.23
[ORACLE] SYNONYM  (0) 2024.01.23
[ORACLE] SEQUENCE - CURRVAL, NEXTVAL  (0) 2024.01.22
[ORACLE] INDEX  (0) 2024.01.22
[ORACLE] JOIN  (0) 2024.01.19

+ Recent posts