ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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에 대해 알아보았습니다.

    예제가 시나리오 형태로 되어있기 때문에 전체적인 흐름을 파악하시면 좋을 것 같습니다.

    댓글

Designed by Tistory.