Patrick's 데이터 세상

DCL(DATA CONTROL LANGUAGE) 본문

Programming/Oracle

DCL(DATA CONTROL LANGUAGE)

patrick610 2020. 6. 21. 15:12
반응형
SMALL

DCL

 

* DCL 개요

   

  유저를 생성하고 권한을 제어할 수 있는 명령어

 

 

* 유저와 권한

 

유저

역할

SCOTT

 Oracle 테스트용 샘플 유저

 Default 패스워드 : TIGER

SYS

 DBA ROLE을 부여받은 유저

SYSTEM

 데이터베이스의 모든 시스템 권한을 부여받은 DBA 유저

 Oracle 설치 완료 시에 패스워드 설정



* 유저 생성과 시스템 권한 부여 및 회수

 

  권한을 생성하기 위해서는 우선 DBA 유저로 접속을 해야 합니다.

 

  데이터베이스에 접속했다고 해서 테이블, 뷰, 인덱스 등과 같은 오브젝트(Object)를 생성할 수는 없습니다.

  사용자가 실행하는 모든 DDL 문장(CREATE, ALTER, DROP, RENAME 등)은 그에 해당하는 적절한 권한이 있어야만 문장을 실행할 수 있습니다.

  이러한 권한을 시스템 권한이라고 하며 약 100개 이상의 종류가 있습니다.

  새로운 유저를 생성하려면 일단 유저 생성 권한(CREATE USER)이 있어야 합니다.

 

권한 

기능 

CREATE USER 

계정 생성 권한 

DROP USER 

계정 삭제 권한 

DROP ANY TABLE 

임의 테이블 삭제 권한 

CREATE SESSION 

데이터베이스 접속 권한 

CREATE TABLE 

테이블 생성 권한 

CREATE VIEW 

뷰 생성 권한 

CREATE SEQUENCE 

시퀀스 생성 권한 

CREATE PROCEDURE 

함수 생성 권한 

 

  부여

 

1

2

3

4

5

6

7

8

-- 유저생성 권한(CREATE USER)

GRANT CREATE USER TO SCOTT;

 

-- 로그인 권한

GRANT CREATE SESSION TO PJS;

 

-- 테이블 생성 권한

GRANT CREATE TABLE TO PJS;

cs

 

 

*  OBJECT에 대한 권한 부여 및 회수

 

권한 

TABLE 

VIEW 

SEQUENCE 

PROCEDURE 

ALTER 

O 

 

O 

 

DELETE 

O 

O 

 

 

SELECT 

O 

O 

O 

 

UPDATE 

O 

O 

 

 

EXECUTE 

 

 

 

O 

INDEX 

O 

 

 

 

INSERT 

O 

O 

 

 

REFERENCE 

O 

 

 

 


설정 가능한 객체 권한

 

  부여

 

  GRANT 권한1, 권한2 ON 객체명 TO 계정명;

 

1

2

3

4

5

6

7

8

9

--방법1

GRANT SELECT ON [TABLE] TO [USER_ID];

GRANT INSERT ON [TABLE] TO [USER_ID];

GRANT DELETE ON [TABLE] TO [USER_ID];

GRANT UPDATE ON [TABLE] TO [USER_ID];

 

--방법2

GRANT SELECTINSERTDELETEUPDATE ON [TABLE] TO [USER_ID];

CREATE OR REPLACE SYNONYM [USER_ID].[TABLE] FOR [MASTER_ID].[TABLE]

cs

 

  회수

 

  REVOKE 권한1, 권한2 ON 객체명 FROM 계정명;

 

1

2

3

4

5

6

7

8

--방법1

REVOKE SELECT ON [TABLEFROM [USER_ID];

REVOKE INSERT ON [TABLEFROM [USER_ID];

REVOKE DELETE ON [TABLEFROM [USER_ID];

REVOKE UPDATE ON [TABLEFROM [USER_ID];

 

--방법 2

REVOKE SELECTINSERTDELETEUPDATE ON [TABLEFROM [USER_ID];

cs

 

  오브젝트 권한은 SELECT, INSERT, DELETE, UPDATE 등의 권한을 따로따로 관리합니다.

 

 

 

반응형
LIST

'Programming > Oracle' 카테고리의 다른 글

오라클 DB LOCK 걸린 개체 확인 & LOCK 해제  (0) 2020.06.21
절차형 SQL  (0) 2020.06.21
그룹 내 비율 함수  (0) 2020.06.21
그룹 내 행 순서 함수  (0) 2020.06.21
일반 집계 함수  (0) 2020.06.21
Comments