728x90
반응형
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 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 접속 확인
728x90
반응형
'[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 |