오라클 DB - 권한 관리, Role

2022. 11. 22. 17:45데이터베이스

권한관리

 

Oracle 사용자 권한의 두 유형 : 

 - 시스템 권한 : 사용자가 데이터베이스에서 특정 작업을 수행할 수 있도록 합니다,

 - 객체 권한 :  사용자가 특정 객체를 액세스 및 조작할 수 있도록 합니다.

 

시스템 권한

 - 100개 이상의 구분 시스템 권한이 있습니다.

 - 권한의 any 키워드는 사용자가 임의의 스키마에서 권한을 가짐을 의미합니다.

 - grant 명령은 사용자 또는 사용자 그룹에 권한을 추가합니다.

 - revoke명령은 권한을 삭제합니다.

 

시스템 권한 부여

 - grant 명령을 사용하여 시스템 권한을 부여합니다.

 - 권한을 부여받은 사용자는 ADMIN 옵션을 사용하여 시스템 권한을 부여할 수 있습니다.

    - GRANT CREATE SESSION TO emi;

    - GRANT CREATE SESSION TO emi WITH ADMIN OPTION; 

 

시스템 권한 제한 사항

 - O7_DICTIONARY_ACCESSIBILITY 매개변수

 - SYSTEM 권한의 제한 사항 제어

 - TRUE로 설정한 경우 SYS 스키마에 있는 객체에 액세스 가능

 - 기본값은 FALSE이며 이 경우 임의의 스키마를 액세스 할수 있는 시스템 권한으로

    SYS 스키마에 액세스할 수 없습니다.

 

시스템 권한 취소

 - REVOKE 명령을 사용하여  사용자의 시스템 권한 제거

 - 시스템 권한에 대해 ADMIN OPTION 권한이 있는 사용자는 시스템 권한을 취소할 수 있음

 - GRANT 명령을 사용하여 부여받은 권한만 취소할 수 있음.

   - REVOKE CREATE TABLE FROM emi;

 

 

객체 권한 부여

 - GRANT 명령을 사용하여 객체 권한을 부여합니다.

 - 객체가 권한을 부여한 사용자의 스키마에 있어야 하거나 권한을 부여한 사용자가

   GRANT OPTION 권한을 가져야합니다.

   - GRANT EXECUTE ON dbms_output TO jeff;

   - GRANT UPDATE ON emi.customers TO jeff WITH GRANT OPTION;

 

객체 권한 취소

 - REVOKE 명령을 사용하여 객체권한을 취소합니다.

 - 권한을 취소하는 사용자는 취소될 객체 권한을 부여한 사용자여야 합니다.

   - REVOKE SELECT ON emi.orders FROM jeff;

 

 

권한 정보 얻기

 - 다음 뷰를 질의하여 권한에 대한 정보를 얻을 수 있습니다.

   - DBA_SYS_PRIVS

   - SESSION_PRIVS

   - DBA_TAB_PRIVS

   - DBA_COL_PRIVS 

 

Role                                   

 

사람들이 하는업무에서 ......개별업무를 분석해서 application role을 만듭니다.

 

롤의 이점

 - 권한 관리 용이성

 - 동적 권한 관리

 - 권한의 선택적 가용성

 - 운영 체제를 통한 부여

 

롤 생성

 - ADMIM 옵션이 부여된 롤:

   - Not identified : 

      - CREATE ROLE oe_clerk;

 

   - By password : 

       - CREATE ROLE hr_clerk

       2 IDENTIFIED BY bouns;

         

   - Identified externally

       - CREATE ROLE hr_manager

       2 IDENTIFIED EXTERNALLY;

 

롤 수정

 - ALTER ROLE을 사용하여 인증 방식 수정

 - ADMIN옵션 또는 ALTER ANY ROLE 권한 필요

   - ALTER ROLE oe_clerk
     IDENTIFIED BY order;       

   - ALTER ROLE hr_clerk
     IDENTIFIED EXTERNALLY;      

   - ALTER ROLE hr_manager
     NOT IDENTIFIED;              

 

롤 할당

 - GRANT 명령을 사용하여 롤 할당

    - GRANT oe_clerk TO scott;

    - GRANT hr_clerk TO hr_manager;    

    - GRANT hr_manager TO scott WITH ADMIN OPTION;

 

기본 롤 설정

 - 한 사용자에게 여러 롤 할당 가능

 - 한 사용자에게 기본 롤 할당 가능

 - 한 사용자의 기본 롤 개수 제한 

    - ALTER USER scott
      DEFAULT ROLE hr_clerk, oe_clerk;      

    - ALTER USER scott DEFAULT ROLE ALL;

    - ALTER USER scott DEFAULT ROLE ALL EXCEPT
      hr_clerk;  

    - ALTER USER scott DEFAULT ROLE NONE;

 

응용 프로그램 롤

 - 응용 프로그램 롤은 인증된 PL/SQL 패키지에 의해서만 활성화할 수 있습니다.

 - USING 패키지 절은 응용 프로그램 롤을 생성합니다.

    - CREATE ROLE admin_role
      IDENTIFIED USING hr.employee;  

 

롤 활성화 및 비활성화

 - 롤을 비활성화하여 사용자로부터 해당 롤을 일시적으로 취소합니다.

 - 롤을 활성화하여 해당 롤을 일시적으로 부여합니다.

 - SET ROLE 명령은 롤을 활성화 및 비활성화합니다.

 - 기본 롤은 로그인 시 사용자에 대해 활성화됩니다.

 - 롤을 활성화하려면 암호가 필요할 수 있습니다.

    - SET ROLE hr_clerk;    

    - SET ROLE oe_clerk IDENTIFIED BY order;

    - SET ROLE ALL EXCEPT oe_clerk;

 

사용자의 롤 취소

 - 사용자의 롤을 취소하려면 ADMIN OPTION 또는 GRANT ANY ROLE 권한이 필요합니다.

 - 롤을 취소하려면 다음을 수행합니다.

    - REVOKE oe_clerk FROM scott;

    - REVOKE hr_manager FROM PUBLIC;

 

롤 제거

 - 롤 삭제 : 

    - 부여된 모든 사용자와 롤에서 롤 제거

    - 데이터베이스에서 롤 제거

 - ADMIN OPTION 또는 FROP ANY ROLE 권한 필요

 - 롤을 삭제하십시오.

   - DROP ROLE hr_manager;

 

 

롤 정보 얻기

다음 뷰를 질의하여 롤에 대한 정보를 얻을수 있습니다.

 - DBA_ROLES :  데이터베이스의 모든 롤 확인

 - DBA_ROLES_PRIVS : 사용자 및 롤에 할당된 롤 확인

 - ROLE_ROLE_PRIVS : 롤에 할당된 롤 확인

 - DBA_SYS_PRIVS : 사용자 및 롤에 할당된 시스템 권한 확인

 - DBA_TAB_PRIVS : 사용자 및 롤에 할당된 객체(OBJECT) 권한 확인

 - ROLE_SYS_PRIVS : 롤에 할당된 시스템 권한 확인

 - ROLE_TAB_PRIVS :  롤에 할당된 객체 권한 확인

 - SESSION_ROLES : 사용자가 현재 활성화 한 롤 확인

 

DBA : 사람이나 롤이 가지고있는

ROLE : 롤이 가지고있는 

어떤 사람이 뭘 가지고있는지 정보가 나온다.