ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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을 생성, 부여, 삭제하는 방법에 대해 알아보았습니다.

    롤은 권한을 담는 그릇이기 때문에 부여해야 할 권한과 계정이 많은 경우에
    권한들을 계정마다 하나씩 부여하지 않아도 된다는 장점이 있습니다.

     

    댓글

Designed by Tistory.