-
SQL_With Admin Option 시스템 권한 위임Data Base_Oracle/SQL 2020. 1. 13. 17:06
With Admin Option_시스템 권한 위임
관리자가 권한의 일부를 임시로 빌려주는 것
§ 형식
[ SQL> grant 권한,,, to 계정,,,, [with admin option]; ]
※ 관리자로부터 부여받은 권한을 다른 계정에 부여할 수 있게 됨
# 예제 _ 시나리오
① 관리자 계정으로 3개의 계정 생성(aaa, bbb, ccc), 암호도 계정명과 동일하게 부여
▷ [ SQL> create user aaa identified by aaa;
create user bbb identified by bbb;
create user ccc identified by ccc; ]② aaa계정에 로그인, 테이블을 생성 권한 부여
ccc에는 권한을 부여하지 않음
▷ [ SQL> grant connect, resource to aaa; // ccc X ]③ bbb 계정에 관리자 권한 일부 위임
▶ [ SQL> grant connect, resource to bbb with admin option;
권한이 부여되었습니다. ]※ bbb 계정이 부여받은 권한을 다른 계정에게도 임시로 부여할 수 있는 권한
④ ccc 계정 로그인 에러
[ SQL > conn ccc/ccc;
ERROR:
ORA-01045: user CCC lacks CREATE SESSION privilege; logon denied
경고: 이제는 ORACLE에 연결되어 있지 않습니다. ]※ ccc 계정에 로그인 권한이 없기 때문에 발생하는 에러
⑤ aaa계정에서 ccc에게 권한 부여
▷ [ SQL> conn aaa/aaa;
grant connect, resource to ccc;
1행에 오류:
ORA-01031: 권한이 불충분합니다 ]※ aaa에게는 with admin option이 부여되지 않았기 때문에 발생하는 에러
⑥ bbb가 ccc에게 필요한 권한 부여
▶ [ SQL> conn bbb/bbb;
grant connect, resource to ccc;
권한이 부여되었습니다. ]※ with admin option 을 부여받은 bbb는
자신이 받은 권한(connect, resourece)을 타 계정에 부여할 수 있음⑦ ccc계정으로 로그인한 뒤 테이블을 생성하고 한 개의 값을 입력
▷ [ SQL> conn ccc/ccc;
연결되었습니다.
SQL> create table abc(id number);
테이블이 생성되었습니다.
SQL> insert into abc values(1);
1 개의 행이 만들어졌습니다. ]ID 1 ※ bbb에게 권한을 부여받은 뒤 정상적으로 로그인, 테이블 생성을 할 수 있게 됨
With Admin Option 회수
§ 형식
[ SQL> revoke 권한,,, from 계정,,,; ]
※ with admin option을 회수하는 것이 아니라 옵션을 부여받은 계정의 권한을 회수
# 예제
① 관리자계정으로 bbb에게 부여되었던 권한 회수
[ SQL> revoke connect, resource from bbb;
권한이 취소되었습니다. ]② ccc계정으로 로그인
[ SQL> conn ccc/ccc
연결되었습니다. ]※ bbb의 권한이 회수되었다고 해도 ccc에게 부여되었던 권한이 취소되지 않음
관리자 계정이 임시로 일반 계정에 부여한 권한을 다른 계정에도 부여할 수 있도록 하는 with admin option에 대해 알아보았습니다.
예제가 시나리오 형태로 되어있기 때문에 전체적인 흐름을 파악하시면 좋을 것 같습니다.
'Data Base_Oracle > SQL' 카테고리의 다른 글
SQL_WITH GRANT OPTION 객체 권한 위임 (0) 2020.01.13 SQL_OBJECT PRIVILEGE 개요 & DATA DICTIONARY (0) 2020.01.13 SQL_ROLE 생성, 부여, 삭제 (0) 2020.01.10 SQL_ROLE 개요 & DATA_DICTIONARY (0) 2020.01.10 SQL_PRIVILEGE 계정 관리 (2) (0) 2020.01.10