-
SQL_ROLE 생성, 부여, 삭제Data Base_Oracle/SQL 2020. 1. 10. 17:09
ROLE 생성
관리자만 생성 가능
§ 형식
[ SQL> create role 롤명; ]
# 예제
▷ usercreate라는 이름을 가진 롤 생성
[ SQL> create role usercreate;
롤이 생성되었습니다.
select * from dba_roles where role='USERCREATE'; ]ROLE PASSWORD AUTHENTICAT USERCREATE NO NONE ROLE 권한 입력
동일한 권한을 여러 개의 롤에 동시에 부여 가능
§ 형식
[ SQL> grant 권한명,,, to 롤명,,,; ]
# 예제
▶ usercreate 롤에 로그인, 계정 생성, 계정 수정 권한 입력
[ SQL> grant create session, create user, alter user to usercreate;
권한이 부여되었습니다.
select * from dba_sys_privs where grantee=upper('usercreate'); ]GRANTEE PRIVILEGE ADM USERCREATE CREATE SESSION NO USERCREATE CREATE USER NO USERCREATE ALTER USER NO ※ 롤에도 GRANT를 사용해서 권한을 부여하는 것이지만
계정에 부여하는 것과 혼동될 수 있기 때문에 '입력'으로 표현ROLE 계정에 부여
사용자 정의 롤을 계정에 부여
§ 형식
[ SQL> grant 롤명,,, to 계정명,,,; ]
# 예제
▶ scott, test2 계정에 usercreate 롤 부여
[ SQL> grant usercreate to scott, test2;
권한이 부여되었습니다. ]▷ scott 계정에서 test3 계정 생성
[ SQL> create user test3 identified by t1234;
사용자가 생성되었습니다. ]▷ scott 계정에서 test3 암호 변경
[ SQL> alter user test3 identified by 1234;
사용자가 변경되었습니다. ]▷ scott 계정에서 test3 계정 삭제
[ SQL> drop user test3;
1행에 오류:
ORA-01031: 권한이 불충분합니다 ]※ DROP USER 권한은 부여되지 않았기 때문에 발생하는 에러
ROLE 삭제
§ 형식
[ SQL> drop role 롤명; ]
# 예제
▶ sys 계정에서 usercreate 롤 삭제
[ SQL> drop role usercreate;
롤이 삭제되었습니다. ]▷ scott 계정에서 test4 계정 생성
[ SQL> create user test4 identified by t1234;
1행에 오류:
ORA-01031: 권한이 불충분합니다 ]※ sys 계정에서 롤을 삭제했기 때문에 발생하는 에러
롤을 부여받았던 계정의 권한도 자동으로 모두 회수됨
ROLE을 생성, 부여, 삭제하는 방법에 대해 알아보았습니다.
롤은 권한을 담는 그릇이기 때문에 부여해야 할 권한과 계정이 많은 경우에
권한들을 계정마다 하나씩 부여하지 않아도 된다는 장점이 있습니다.'Data Base_Oracle > SQL' 카테고리의 다른 글
SQL_OBJECT PRIVILEGE 개요 & DATA DICTIONARY (0) 2020.01.13 SQL_With Admin Option 시스템 권한 위임 (0) 2020.01.13 SQL_ROLE 개요 & DATA_DICTIONARY (0) 2020.01.10 SQL_PRIVILEGE 계정 관리 (2) (0) 2020.01.10 SQL_PRIVILEGE 개요 & 계정 관리 (1) (0) 2020.01.10