반응형
DCL (DATA CONTROL LANGUAGE)
유저를 생성하고 권한을 제어할 수 있는 명령어
데이터의 보호와 보안을 위한 언어
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | 1. 유저 생성, 로그인등 권한 주기 CONN SCOTT/TIGER // 로그인 CREATE USER PJS IDENTIFIED BY KOREA7; // 오류. 권한 불충분 'GRANT' GRANT CREATE USER TO SCOTT; // 유저 생성권한을 SCOTT에게 줌 CONN SCOTT/TIGER CREATE USER PJS IDENTIFIED BY KOREA7; // 유저 PJS 생성 완료 유저가 생성되었어도 아무런 권한이 없다. 따라서 로그인할 수 있게 권한부여해줘야 함. CONN SCOTT/TIGER; GRANT CREATE SESSION TO PJS; CONN PJS/KOREA7; // 로그인 성공 CONN SYSTEM/MANAGER; GRANT CREATE TABLE TO PJS; // 테이블생성권한 줌 CONN PJS/KOREA7; CREATE TABLE MENU( MENU_SEQ NUMBER NOT NULL, TITLE VARCHAR2(10) ); // 테이블 생성 성공 * 다른 유저가 생성한 테이블에 접근 권한이 없음. CONN PJS/KOREA7; INSERT INTO MENU VALUES(1,'화이팅'); COMMIT; GRANT SELECT ON MENU TO SCOTT; // SCOTT에게 SELECT 권한을 줌 CONN SCOTT/TIGER; SELECT * FROM PJS.MENU; // 결과나옴 1, '화이팅' // UPDATE 문을 쓰면 당연히 안됨. 업데이트 권한을 따로 받아야 하기때문. 2. Role을 이용한 권한 부여 * 이렇게 일일이 권한을 부여하다보면 실수할 가능성도 많고 누구에게 어떤 권한을 주었는지도 관리를 해야하는 불편이 있다. 따라서 하나의 Role을 정하고 그것에 권한을 부여한 뒤 그 Role을 유저에 부여하는 방법 CONN SYSTEM/MANAGER; REVOKE CREATE SESSION, CREATE TABLE FROM PJS; // REVOKE 는 권한 제거 CONN PJS/KOREA7; // 로그인이 거절됨. 로그인권한 없애버려서. CONN SYSTEM/MANAGER; CREATE ROLE LOGIN_TABLE; GRANT CREATE SESSION, CREATE TALBLE TO LOGIN_TABLE; // 롤을 만들고 그 롤에 권한 부여. GRANT LOGIN_TABLE TO PJS; // 롤을 유저에게 부여 CONN PJS/KOREA7; // 연결됨. CREATE TABLE MENU2( MENU_SEQ NUMBER NOT NULL, TITLE VARCHAR2(10) ); CONN SYSTEM/MANAGER; DROP USER PJS CASCADE; // PJS가 만들 테이블도 같이 삭제됨. CREATE USER PJS IDENTIFIED BY KOREA7; GRANT CONNECT, RESOURCE TO PJS; // 오라클에서 기본적인 Role을 만들어놓았음. // CONNECT와 RESOURCE 라는. // 나중에 확인해볼것. |
주관식으로 권한 관련 문제가 나왔었음.
반응형
'DB > SQLD' 카테고리의 다른 글
SQLD 후기 (26회 SQL개발자 시험 합격 후기) (6) | 2017.10.10 |
---|---|
SQL 활용 - 절차형 SQL (0) | 2017.09.11 |
26회 SQLD/SQL개발자 시험 후기, 공부법 (0) | 2017.09.09 |
SQL 활용 - 윈도우 함수 (0) | 2017.09.09 |
SQL 활용 - 그룹 함수 (ROLLUP, CUBE) (0) | 2017.09.09 |