✍DCL(Data Control Language)
: 데이터 제어 언어
데이터 베이스, 데이터베이스 내의 객체에 대한 접근 권한을 제어(부여, 회수)하는 언어
- GRANT : 권한 부여
- REVOKE : 권환 회수, 취소
조작
ex) 시험 성적 조작(점수라는 데이터를 바꿈)
제어
: 자동차 제어(자동차라는 물체의 움직임을 바꿈)
🚩1. 시스템 권한 부여
사용자에게 시스템 권한을 부여할 때 사용
표기법
GRANT 권한1, 권한2, ... -- TO 사용자 이름;
[ 시스템 권한 종류 ]
CRETAE SESSION 데이터베이스 접속 권한 CREATE TABLE 테이블 생성 권한 CREATE VIEW 뷰 생성 권한 CREATE SEQUENCE 시퀀스 생성 권한 CREATE PROCEDURE 함수(프로시져) 생성 권한 CREATE USER 사용자(계정) 생성 권한 DROP USER 사용자(계정) 삭제 권한 DROP ANY TABLE 임의 테이블 삭제 권한
⭐ [ 계정의 종류 ]
- 관리자 계정 : 데이터베이스의 생성과 관리를 담당하는 계정이며 모든 권한과 책임을 가지는 계정
ex) sys -- 모든게 다 있고, system --SYS에서 몇개 빠짐
- 사용자 계정 : 데이터베이스에 대하여 질의, 갱신, 보고서 작성 등의 작업을 수행할 수 있는 계정으로
업무에 필요한 최소한의 권한만 가지는 것을 원칙으로 한다
ex) 임의로 정한 사용자 계정명
🚩2. ROLE
권한의 묶음
여러 가지 관련된 권한들을 묶어서 한번에 부여, 회수하는 용도로 사용
1) CONNECT
데이터베이스 접속 권한 ( == CREATE SESSION)
SELECT * FROM 테이블명
WHERE ROLE = 'CONNECT';
➡ CONNECT ROLE에 포함된 권한 모든 조회
2) RESOURCE
데이터베이스를 사용하기 위한 기본 객체 생성 권한을 묶어둔 롤
SELECT * FROM ROLE_SYS_PRIVS
WHERE ROLE = 'RESOURCE';
➡ TABLE 외 7가지 생성 권한 + 테이블 스페이스를 기본값으로 자동 부여
예제
CREATE USER 생성한 계정명 IDENTIFIED BY 비밀번호;
GRANT CONNECT, RESOURCE TO 생성한 계정명;
➡ 관리자 계정에서 진행 -> 접속 창에서 생성한 계정 추가
🚩3. 객체 권한
특정 객체를 조작할 수 있는 권한을 부여
표기법
GRANT 권한 종류 [(컬럼명)] | ALL
ON 객체명 | ROLE 이름 | PUBLIC
TO 사용자 이름;
[ 객체 권한 종류 ]
권한 종류 설정 객체 (on뒤에 객체명 자리) SELECT TABLE, VIEW, SEQUENCE INSERT TABLE, VIEW UPDATE TABLE, VIEW DELETE TABLE, VIEW ALTER TABLE, SEQUENCE REFERENCES TABLE INDEX TABLE EXECUTE PROCEDURE
예제
두 개다 권한을 부여할 계정에서 진행
GRANT SELECT ON 테이블명 TO 권한받을 계정명;
➡ 권한 부여
REVOKE SELECT ON 테이블명 FROM 권한받은 계정명;
➡ 권환 회수
📝 실습
👉 계정 생성해서 권한 부여, 테이블 복사, 제약조건 추가
1) 계정 생성
- 사용자 계정명 : testuser
- 비밀번호 : test1234
- 부여 권한 : 데이터베이스 접속 권한,
기본 객체 생성 권한,
DD 계정 EMP 테이블 조회 권한
2) 생성된 사용자 testuser로 접속
3) DD 계정의 EMP 테이블을 복사한 TEST_EMP 테이블을 생성
4) 복사한 TEST_EMP 테이블의 EMP_ID 컬럼에 PRIMARY KEY 제약조건 추가
- 관리자 계정에서 진행
1) 계정 생성
CREATE USER testuser IDENTIFIED BY test1234;
1) 권한 부여
GRANT CONNECT, RESOURCE TO testuser;
GRANT SELECT ON EMPLOYEE TO testuser;
2) testuser 접속
좌상단에서 + 진행
- test 계정에서 진행
3) DD계정의 EMP 테이블 복사 (조회 권한이 부여되어있기 때문에 복사 가능)
CREATE TABLE TEST_EMP AS
SELECT * FROM DD.EMPLOYEE;
4) constraint 제약조건명 붙여도 되고 안해도 되고
ALTER TABLE TEST_EMP ADD PRIMARY KEY(EMP_ID);
'Backend > Oracle' 카테고리의 다른 글
[DB] PL/SQL , (타입,레퍼런스)변수, 조건문, CASE문, 반복문, FOR , 예외처리 (0) | 2021.09.29 |
---|---|
[DB] VIEW, SEQUENCE, INDEX (0) | 2021.09.29 |
[DB] DDL :: ALTER , DROP (0) | 2021.09.28 |
[DB] TCL(TRANSGACTION CONTROL LANGUAGE) (0) | 2021.09.27 |
[DB] DDL : CREATE, 제약조건 CHECK (0) | 2021.09.27 |