본문 바로가기

전산Tip/Oracle

오라클 권한 설명 및 확인

반응형

SELECT * FROM USER_ROLE_PRIVS;
SELECT * FROM USER_SYS_PRIVS;
SELECT * FROM SESSION_PRIVS;



사용자 권한 식별
  
이곳 에서는 Oracle사용자 권한에 대해 설명하며 다음 내용을 다룹니다.
  
시스템 권한
개체 권한
사용자 권한은 특정 유형의 SQL 명령문을 실행하거나 다른 사용자의 개체를 사용할 수 있는 권리입니다. Oracle은 보통 함께 부여되거나 철회하는 권한을 그룹으로 묶어 그룹에 대한 단축키를 제공합니다.

 시스템 권한
  
서로 다른 80가지의 시스템 권한이 있습니다.
각 시스템 권한을 사용하여 사용자가 특정 데이터베이스 작업이나 데이터베이스 작업의 클래스를 수행하도록 합니다.
보안을 위해 시스템 권한은 사용자가 데이터 딕셔너리에 액세스하는 것을 허용하지 않습니다.
따라서 UPDATE ANY, SELECT ANY TABLE, CREATE ANT INDEX와 같은 ANY권한을 가진 사용자는 딕셔너리 테이블과 PUBLIC에 부여되지 않은 뷰를 액세스할 수 없습니다.
 
주 : 시스템 권한은 강력한 권한이 될 수 있으므로 롤과 데이터베이스 사용자를 선별하여 신중하게권한을 부여햐야 합니다. ANY권한을 가진 사용자는 데이터 딕셔너리를 액세스할 수 없습니다.
    시스템 권한과 권한이 허용하는 작업
   시스템권한
 가능한 작업
 
ANALYZE
 
ANALYZE ANY
 데이터베이스의 모든 테이블, 클러스터, 인덱스를 분석합니다.
 
AUDIT
 
AUDIT ANY
 데이터베이스의 스키마 개체를 감사합니다
 
AUDIT SYSTEM
 명령문 감사 옵션과 권한 감사 옵션의 활성 여부를 감사합니다.
 
CLUSTER
 
CREATE CLUSTER
 자신의 스키마에 클러스터를 생성합니다.
 
CREATE ANY CLUSTER
 CREATE ANY TABLE과 유사한 권한으로 모든 스키마에 클러스터를 생성합니다.
 
ALTER ANY CLUSTER
 데이터베이스의 모든 클러스터를 변경합니다
 
DROP ANY CLUSTER
 데이터베이스의 모든 클러스터를 삭제합니다.
 
DATABASE
 
ALTER DATABASE
 데이터베이스를 변경합니다. 운영 체제 권한에 관계없이 Oracle을 사용하여 응용체제에 파일을 추가합니다.
 
DATABASE LINK
 
CREATE DATABASE LINK
 자신의 스키마에 개인용 데이터베이스 링크를 생성합니다.
 
INDEX
 
CREATE ANY INDEX
 테이블의 스키마에 인덱스를 생성합니다
 
ALTER ANY INDEX
 데이터베이스의 인덱스를 변경합니다.
 
DROP ANY INDEX
 데이터베이스의 인덱스를 삭제합니다.
 
시스템 권한
 설명
 
LIBRARY
 
CREATE LIBRARY
 자신의 스키마에 호출 라이브러리를 생성합니다.
 
CREATE ANY LIBRARY
 스키마 호출 라이브러리를 생성합니다.
 
DROP LIBRARY
 자신의 스키마에서 호출 라이브러리를 삭제합니다.
 
DROP ANY LIBRARY
 스키마에서 호출 라이브러리를 삭제합니다.
 
PROCEDURE
 
CREATE PROCEDURE
 자신의 스키마에 내장 프로시저, 함수, 패키지를 생성합니다.
 
CREATE ANY PROCEDURE
 스키마에 내장 프로시저, 함수, 패키지를 생성합니다. (사용자는 또한 ALTER ANY TABLE, BACKUP ANY TABLE, DROP ANY TABLE, SELECT ANY TABLE,INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE, GRANT ANY TABLE 권한이 있어야 합니다.
 
ALTER ANY PROCEDURE
 스키마에 있는 내장 프로시저, 함수, 패키지를 컴파일 합니다.
 
DROP ANY PROCEDURE
 스키마에 있는 내장 프로시저, 함수, 패키지를 삭제합니다.
 
EXECUTE ANY
PROCEDURE
 스키마에 있는 독립형이나 패키지된 프로시저 또한 함수를 실행할 수 있으며 모든 공용 패키지 변수를 참조합니다
 
PROFILE
 
CREATE PROFILE
 프로파일을 생성합니다.
 
ALTER PROFILE
 데이터베이스의 프로파일을 변경합니다.
 
DROP PROFILE
 데이터베이스의 프로파일을 삭제합니다.
 
ALTER RESOURCE COST
 모든 사용자 세션에서 사용하는 자원에 대한 비용을 설정합니다.
 
PUBLIV DATABASE LINK
 
CREATE PUBLIC DATABASE LINK
 공용 데이터베이스 링크를 생성합니다
 
DROP PUBLIC DATABASE LINK
 공용 데이터베이스 링크를 삭제합니다.
 
PUBLIC SYNONYM
 
CREATE PUBLIC SYNONYM
 공용 동의어를 생성합니다.
 
DROP PUBLIC SYNONYM
 공용 동의어를 삭제합니다.
 
ROLE
 
CREATE ROLL
 롤을 생성합니다.
 
ALTER ANY ROLL
 데이터베이스에서 롤을 변경합니다.
 
DROP ANY ROLL
 데이터베이스에서 롤을 삭제합니다.
 
GRANT ANY ROLL
 데이터베이스에서 롤을 부여합니다.
 
ROLLBACK SEGMENT
 
CREATE ROLLBACK SEGMENT
 롤백 세그먼트를 생성합니다.
 
ALTER ROLLBACK
 롤백 세그먼트를 변경합니다.
 
시스템 권한
 가능한 작업
 
SEGMENT
 
DROP ROLLBACK SEGMENT
 롤백 세그먼트를 삭제합니다.
 
SESSION
 
CREATE SESSION
 데이터베이스에 접속합니다.
 
ALTER SESSION
 ALTER SESSION명령문을 실행합니다.
 
RESTRICTED SESSION
 STARTUP RESTRICT를 사용하여 데이터베이스가 시작되었을 때 접속합니다.(OSOPER과 OSDBA 롤은 이 권한을 가집니다.)
 
SEQUENCE
 
CREATE SEQUENCE
 자신의 스키마에 시퀀스를 생성합니다.
 
CREATE ANY SEQUENCE
 스키마에 시퀀스를 생성합니다.
 
ALTER ANY SEQUENCE
 스키마에서 시퀀스를 변경합니다.
 
DROP ANY SEQUENCE
 스키마에서 시퀀스를 삭제합니다.
 
SELECT ANY SEQYENCE
 스키마에서 시퀀스를 참조합니다.
 
SNAPSHOT
 
CREATE SNAPSHOT
 자신의 스키마에 스냅샷을 생성합니다.(사용자는 CREATE TABLE권한이 있어야합니다.)
 
CREATE ANY SHAPSHOT
 스키마에 스냅샷을 생성합니다.(사용자는 CREATE ANY TABLE권한이 있어야합니다.)
 
ALTER ANY SNAPSHOT
 스키마에서 스냅샷을 변경합니다.
 
DROP ANY SNAPSHOT
 스키마에서 스냅샷을 삭제합니다.
 
SYNONYM
 
CREATE SYNONYM
 자신의 스키마에 동의어를 생성합니다.
 
CREATE ANY SYNONYM
 스키마에 동의어를 생성합니다.
 
DROP ANY SYNONYM
 스키마에서 동의어를 삭제합니다.
 
SYSTEM
 
ALTER SYSTEM
 ALTER SYSTEM명령문을 실행합니다.
 
TABLE
 
CREATE TABLE
 자신의 스키마에 테이블을 생성합니다. 또한 자신의 스키마에 있는 테이블에 무결성 제약 조건을 포함하여 인덱스를 생성할 수 있습니다. (이 권한을 부여받은 사용자는 테이블스페이스 할당량을 가지거나 UNLIMITED TABLESPACE권한이있어야 합니다.)
 
CREATE ANY TABLE
 스키마에 테이블을 생성합니다. (이 권한을 부여받은 사용자가 CREATE ANY TABLE 권한이 있고 다른 사용자의 스키마에 테이블을 생성하려는 경우 이 권한을 부여받은 사용자는 해당 테이블스페이스에 영역 할당량이 있어야 합니다. 해당 테이블의 소유자는 CREATE [ANY] TABLE권한이 없어도 됩니다.)
 
ALTER ANY TABLE
 스키마의 테이블을 변경하고 스키마에서 뷰를 컴파일합니다.
 
BACKUP ANY TABLE
 스키마의 테이블에서 Export를 사용하여 증분 엑스포트를 수행합니다.
 
시스템 권한
 가능한 작업
 
DROP ANY TABLE
 스키마에서 테이블을 삭제하거나 잘라냅니다.
 
LOCK ANY TABLE
 스키마에서 테이블이나 뷰를 잠금니다.
 
COMMENT ANY TABLE
 스키마에 있는 테이블이나 뷰 또는 열에 대해 설명합니다.
 
SELECT ANY TABLE
 스키마에서 테이블, 뷰 또는 스냅샷을 질의합니다.
 
INSERT ANY TABLE
 스키마의 테이블이나 뷰에 행을 삽입합니다.
 
UPDATE ANY TABLE
 스키마의 테이블이나 뷰에 행을 갱신합니다.
 
DELETE ANY TABLE
 스키마의 테이블이나 뷰에 행을 삭제합니다.
 
TABLESPACE
 
CREATE TALESPACE
 테이블스페이스를 생성합니다. 사용자 운영 체제 권한에 관계없이 Oracle을 사용하여 운영 체제에 파일을 추가합니다.
 
ALTER TABLESPACE
 테이블스페이스를 변경합니다. 사용자 운영 체제 권한에 관계없이 Oracle을 사용하여 운영 체제에 파일을 추가합니다.
 
MANAGER TABLESPACE
 테이블스페이스를 오프라인이나 온라인으로 설정하여 테이블스페이스 백업을 시작하고 끝냅니다.
 
DROP TABLESPACE
 테이블스페이스를 삭제합니다.
 
UNLIMITED TABLESPACE
 테이블스페이스를 무제한 사용합니다. 이 권한은 해당 테이블스페이스에 지정되어 있는 할당량을 무효화합니다. UNLIMITED TABLESPACE권한이 철회되면 이 권한을 사용하여 생성된 스키마 개체는 그대로 유지되지만 지정한 테이블스페이스에 대해 할당량이 허용되지 않으면 테이블스페이스에 대해 더 이상 할당하지 않습니다. 이 시스템 권한은 롤이 아닌 사용자에게만 부여할 수 있습니다. 일반적으로 이 시스템 권한을 부여하는 대신 테이블스페이스 할당량을 지정합니다.
 
TRANSACTION
 
FORCE TRANSACTION
 지역 데이터베이스에 있는 고유의 미확정 분산 트랜잭션을 강제로 커밋하거나 롤백합니다.
 
FORCE ANY TRANSACTION
 지역 데이터베이스에 있는 미확정 분산 트랜잭션을 강제로 커밋하거나 롤백합니다.
 
TRIGGER
 
CREATE TRGGER
 자신의 스키마에 트리거를 생성합니다.
 
CREATE ANY TRIGGER
 스키마의 테이블과 관련된 스키마에 트리거를 생성합니다.
 
ALTER ANY TRIGGER
 스키마에서 트리거를 활성화하거나 비활성활하거나 컴파일합니다.
 
DROP ANY TRIGGER
 스키마에서 크리거를 삭제합니다.
 
USER
 
CREATE ANY USER
 사용자를 생성합니다. 테이블스페이스에 할당량을 지정하고 기본값과 임시 테이블스페이스를 설정하며 CREATE USER명령문의 일부분으로 프로파일을 지정할 수 있습니다.
 
BECOME ANY USER
 다른 사용자가 됩니다 (전체 데이터베이스 임포트를 수행하는 사용자가 필요합니다.)
 
ALTER USER
 다른 사용자를 변경합니다. ALTER USER명령문을 사용하여 사용자의 암호나 인
 
시스템 권한
 가능한 작업
 
 증 방법을 변경하고 테이블스페이스 할당량을 지정하며 기본값과 임시 테이블스페이스를 설정하고 프로 파일과 기본 롤을 지정할 수 있습니다 (자신의 암호는 변경하지 않아도 됩니다.)
 
DROP USER
 다른 사용자를 삭제합니다.
 
VIEW
 
CREATE VIEW
 자신의 스키마에 뷰를 생성합니다.
 
CREATE ANY VIEW
 스키마에 뷰를 생성합니다. 다른 사용자의 스키마에 뷰를 생성하려면 CREATE ANY VIEW권한이 있어야 하며 소유자는 뷰에서 참조하는 개체에 대한 필요한 권한이 있어야 합니다.
 
DROP ANY VIEW
 스키마에서 뷰를 삭제합니다.
 
 
 시스템 권한 제한 사항
  
딕셔너리 보호 처리 기법은 권한이 없는 사용자가 딕셔너리 개체를 액세스 하지 못하도록 합니다.딕셔너리 개체를 액세스할 수 있는 사용자는 SYSDBA와 SYSOPER만으로 제한되어 있습니다.
다른 스키마의 개체를 액세스할 수 있도록 하는 시스템 권한이 있다 해도 딕셔너리 개체를 액세스할 수는 없습니다.
예를 들어 SELECT ANY TABLE권한이 있으면 다른 스키마의 뷰와 테이블을 액세스할 수 있지만 기본 테이블, 뷰, 패키지, 동의어와 같은 딕셔너리의 개체를 선택할 수는 없습니다.
07_DICTIONARY_ACCESSIBILTY 매개변수(기본값은 TRUE)를 사용하여 Oracle7으로 작업 방식을 전환하여 시스템 권한에 대한 제한 사항을 제거합니다.
   
 자주 사용되는 딕셔너리 개체 액세스
명시적 개체 권한을 가진 사용자와 SYSDBA는 딕셔너리 개체를 액세스할 수 있습니다.
그러나 딕셔너리 개체를 액세스해야 하지만 명시적 개체 권한이 없는 경우 다음 롤을 부여받을 수 있습니다.
   
 SELECT_CATALOG_ROLE
사용자는 이 롤에 부여된 모든 엑스포된 카타로그 뷰와 테이블을 SELECT할 수 있습니다.
데이터 딕셔너리의 모든 엑스포된 뷰와 테이블을 액세스해야 하는 사용자에게 이 롤을 부여합니다.
   
 EXECUTE_CATALOG_ROLE
딕셔너리의 엑스포된 패키지에 대한 EXECUTE권한을 제공합니다.
   
 DELETE_CATALOG_ROLE
사용자는 AUD$테이블에서 레코드를 삭제할 수 있습니다.
이러한 롤은 데이터베이스 관리자가 딕셔너리 보안을 유지 관리하면서 딕셔너리의 특정 개체를 액세스할 수 있도록 합니다.
주 : SYSDBA는 딕셔너리의 엑스포되지 않은 개체에 대한 개체 권한을 사용자에게 부여하면 안됩니다. 부여하면 데이터베이스의 무결성이 손상될 수 있습니다.
   
 
 개체 권한
  
각 유형의 개체는 해당 개체와 연관된 서로 다른 권한을 가집니다.
    개체 권한
개체 권한
 테이블
 뷰
 시퀀스
 프로시저( a )
 
ALTER
 ( c )
   ( c )
  
DELETE
 ( c )
 ( c )
    
EXECUTE
       ( c )
 
INDEX
 ( b )
      
INSERT
 ( c )
 ( c )
    
REFERENCES
 ( b )
      
SELECT
 ( c )
 ( b )
 ( c )
  
UPDATE
 ( c )
 ( c )
    
독립형 내장 프로시저와 함수. 공용 패키지 구성자를 포함합니다.
롤에 권한을 부여할 수 없습니다.
스냅샷에 대해 부여될 수 있습니다.
 

모든 유형의 스키마 개체가 포함되어 있지는 않습니다. 클러스터, 인덱스,트리거, 데이터베이스 링크와 같은 대부분의 스키마 개체는 나열되어 있지 않으며 시스템 권한을 사용하여 배타적으로 제어됩니다.
예를 들어 클러스터를 변경하려면 사용자는 클러스터를 소유하거나 ALTER ANY CLUSTER시스템 권한이 있어야 합니다.
  
 
 개체 권한에 허용되는 SQL명령문
   개체 권한
 허용되는 SQL명령문
 
ALTER
 ALTER 개체(테이블 또는 시퀀스)
 
DELETE
 DELETE FROM 개체(테이블 또는 뷰)
 
EXECUTE
 EXECUTE 개체(프로시저 또는 함수), 공용 패키지, 변수 참조
 
INDEX
 CREATE INDEX ON 개체(테이블만)
 
INSERT
 INSERT INTO 개체(테이블 또는 뷰)
 
REFERENCES
 개체(테이블만)에 대해 FOREIGN KEY 무결성 제약 조건을 정의하는 CREATE 또는 ALTER TABLE 명령문
 
SELECT
 SELECT .. FROM 개체 (테이블, 스냅샷 또는 뷰), 시퀀스를 사용하는 SQL명령문
 
UPDATE
 UPDATE 개체 (테이블 또는 뷰)
 
 
 개체 권한 단축키
  
ALL 및 ALL PRIVLIEGES단축키는 개체에 대해 사용할 수 있는 모든 개체 권한을 부여하거나 철회할 수 있습니다.
이 단축키는 권한이라기 보다는 GRANT 및 REVOKE명령문에서 한 단어로 모든 개체 권한을 부여하거나 철회하는 방법입니다.
모든 개체 권한을 ALL단축키를 사용하여 부여해도 권한별로 철회할 수 있습니다.

또한 개별적으로 부여한 권한은 모두 ALL단축키를 사용하여 한번에 철회할 수 잇습니다. 그러나 REVOKE ALL을 실행할 때 (철회한 REFERENCES권한에 의해 무결성 제약 조건이 결정되므로)철회 작업에 의해 무결성 제약 조건도 함께 삭제할 경우 REVOKE명령문에 CASCADE CONSTRAINTS옵션을 사용합니다.
   
 
 
 사용자 롤 관리
  
이곳 에서는 롤 관리와 다음 내용을 다룹니다.
  
롤 생성
미리 정의된 롤
롤은 여러 가지 권한과 롤의 그룹으로 자용자에게 동시에 부여되고 철회될 수 있습니다. 롤은 각 사용자별로 활성화 여부를 결정할 수 있습니다.

 롤 생성
  
SQL명령어 CREATE ROLE을 사용하여 롤을 생성할 수 있습니다.롤을 생성하려면 CREATE ROLE시스템 권한이 있어야 합니다.
일반적으로 보안 관리자만이 이 시스템 권한을 가집니다.

주 : 롤을 생성한 즉시 롤이 롤에 관련된 시스템 권한을 가지는 것은 아닙니다. 새로운 롤과 권한을 연결하려면 새로운 롤에 권한 또는 다른 롤을 부여해야 합니다.

다음 명령문은 BICENTENNIAL 암호를 사용하여 데이터베이스에 의해 인증된 CLERK 이라는 롤을 생성합니다.
  
CREATE ROLE clerk IDENTIFIED BY BICENTENNIAL;
 롤 이름
롤을 생성할 때 롤에 데이터베이스의 기본 사용자명이나 롤 이름과 구분되는 고유한 이름을 지정해야 합니다.
롤은 모든 사용자의 스키마에 있지 않습니다.
   
 다중 바이트 문자 집합에서의 롤 이름
다중 바이트 문자 집합을 사용하는 데이터베이스에서 오라크라는 각 롤의 이름에 적어도 하나의 단일 바이트문자를 포함하도록 합니다. 롤 이름에 다중 바이트 문자만을 사용하면 보안 처리된 롤 이름이나 보안 처리된 암호 조합으로는 보안 유지가 상당히 어렵습니다.
   
 
 미리 정의된 롤
  
아래의 표에 나열된 롤은 오라클 데이터베이스에서 자동으로 정의됩니다. 이 롤은 이전 Oracle버전과 역방향 호환성를 제공합니다. 이러한 미리 정의된 롤에 사용자가 정의한 롤에 수행하는 것과 마찬가지로 권한과 롤을 부여하거나 철회할 수 있습니다.
롤 이름
 롤에 부여된 권한
 
CONNECT ( a )
 ALTER SESSION, CREATE CLUSTER, CREATE DATABASE LINK, CREATE

SEQUENCE, CREATE SESSION, CREATE SYNONYM, CRETE TABLE, CREATE

VIEW
 
RESOURCE ( a, b )
 CREATE CLUSTER, CREATE PROCEDURE, CREATE SEQUENCE, CREATE
 
롤 이름
 롤에 부여된 권한
 
  TABLE, CREATE TRIGGER
 
DBA ( a, c, d )
 WITH ADMIN OPTION에 있는 모든 시스템 권한
 
EXP_FULL_DATABASE ( e )
 SELECRT ANY TABLE, BACKUP ANY TABLE, INSERT, DELETE, UPDATE ON

THE TABLES, SYS.INCVID, SYS,INCFIL, SYS.INCEXP
 
IMP_FULL_DATABASE ( e )
 BECOME USER
 
DELETE_CATALOG_ROLE ( f )
 이 롤에 대한 모든 딕셔너리 패키지의 DELTE 권한
 
EXECUTE_CATALOG_ROLE ( f )
 이 롤에 대한 모든 딕셔너리 페키지의 EXECUTE 권한
 
SELECT_CATALOG_ROLE ( f )
 이 롤에 대한 모든 카타로그 테이블 및 뷰의 SELECT권한
 
SQL.BSQ에 의해 생성됩니다.
RESOURCE롤을 부여받은 사용자는 UNLIMITED TABLESPACE시스템 권한도 명시적으로 부여받습니다. (UNLIMITED TABLESPACE시스템 권한은 RESOURCE롤의 일부가 아닙니다)
DBA롤을 부여받은 사용자는 ADMIN OPTION과 함께 UNLIMITED TABLESPACE시스템 권한도 명시적으로 부여받습니다. (ADMIN OPTION과 함께 사용하는 UNLIMITED TABLESPACE시스템 권한은 DBA롤의 일부가 아닙니다), 따라서 DBA롤을 철회하면 UNLIMITED TABLESPACE권한도 철회되어야 합니다.
CATEXP.SQL을 실행하면 EXP_FULL_DATABASE와 IMP_FULL_DATABASE롤도 포함됩니다.
CATEXP.SQL에 의해 생성됩니다.
이러한 롤은 DBA롤이 없는 사용자에게 부여되어야 하지만 데이터 딕셔너리의 뷰와 테이블을 액세스해야 합니다.
 

  
 
 
 롤 인증
  
사용자가 롤을 활성하고자 할 때 데이터베이스 롤은 선택적으로 인증을 요구할 수 있습니다. 롤 인증은 암호를 사용한 데이터베이스, 운영 체제, 네트워크 서비스에 의해 유지 관리될 수 있습니다.

롤 인증 방법을 변경하려면 ALTER ANY ROLE 시스템 권한이 있거나 ADMIN OPTION을 가진 롤을 부여받아야 합니다.
    데이터베이스에 의한 롤 인증
  
롤 사용은 관련된 암호로 보호할 수 있습니다. 암호를 사용하여 보호되는 롤을 부여받으면 SET ROLE명령어에 해당 롤에 대한 적합한 암호를 주어 롤을 활성화하거나 비활성화할 수 있습니다.

주 : 다중 바이트 문자 집합을 사용하는 데이터베이스에서 롤애 대한 암호는 단일 바이트 문자만을 포함해야 합니다. 다중 바이트 문자는 암호에서 받아들이지 않습니다.
   
 운영 체제에 의한 롤 인증
  
다음 명령문은 ACCTS_REC라는 롤을 생성하고 운영 체제가 롤 사용을 인증합니다.
  
CREATE ROLE role INDENTIFIED EXTERNALLY;
  
운영 체제를 사용한 롤 인증은 운영 체제가 운영 체제 권한과 응용 프로그램을 동적으로 링크할 수 있을때만 유용합니다. 사용자가 프로그램을 실행할 때 운영 체제는 사용자에게 운영 체제 시스템 권한을 부여합니다.
부여된 운영 체제 권한은 해당 응용 프로그램과 관련된 롤에 대응하며 응용 프로그램은 응용 프로그램 롤을 활성화 합니다. 응용 프로그램을 종료할 때 이전에 부여된 운영 체제 권한은 사용자 운영 체제 계정에서 철회됩니다.

운영 체제가 롤을 인증하면 운영 체제 레벨에서 각 사용자에 대한 정보를 구성해야 합니다. 이 작업은 운영 체제마다 다릅니다.

운영 체제가 롤을 부여하면 운영 체제가 롤을 인증하지 않아도 됩니다. 이 작업은 중복됩니다.
   
 롤 인증과 네트워크 클라이언트
  
사용자가 SQL*Net으로 데이터베이스에 접속했다면 기본적으로 운영 체제는 사용자의 롤을 인증할 수 없습니다. 이것은 접속이 SQL*Net을 필요로 하는 것처럼 다중 스레드 서버를 통한 접속을 포함합니다. 원격 사용.자는 네트워크 접속으로 다른 운영 체제 사용자를 가장할 수 있으므로 이 제한은 기본입니다.

보안 위험을 생각하지 않고 네트워크 클라이언트에 대해 운영 체제 롤 인증을 사용하려면 데이터베이스 매개변수 파일에서 매개변수 REMOTE_OS_ROLES를 TRUE로 설정합니다.
이러한 변경 사항을 반영하려면 인스턴스를 재시작하고 데이터베이스를 마운트해야 합니다. (이 매개변수의 기본값은 FALSE입니다)
   
 인증 보류
  
인증 없이 롤을 생성할 수도 있습니다. 보안 없이 롤을 생성하면 롤을 부여받은 사용자가 롤의 활성화 여부를 결정할 수 있습니다.
   
 롤의 인증 방법 변경
  
SQL명령어 ALTER ROLE을 사용하여 롤의 인증 방법을 설정하거나 변경할 수 있습니다.
다음 명령문은 CLEARK롤을 외부에서 인증받도록 변경합니다.
ALTER ROLE clerk IDENTIFIED EXTER0NALLY;
   
 사용자의 기본 롤 변경
  
SQL명령어 ALTER USER을 사용하여 사용자의 기본 롤 목록은 변경할 수 있습니다.
ALL 키워드 사용 : 사용자의 기본 롤 목록을 ALL로 지정하면 사용자에게 부여된 모든 롤이 사용자의 기본 롤 목록에 자동으로 추가됩니다. 이후에 사용자의 기본 롤 목록을 수정하면 사용자의 기본 롤 목록에서 새로 부여된 롤을 제거할 수 있습니다.
   
 MAX_ENABLED_ROLES 매개변수 사용
  
사용자는 초기화 매개변수 MAX_ENABLED_ROLES에 지정된 수만큼의 롤을 활성화할 수 있습니다.
기본 롤을 활성화함으로써 간접적으로 부여되는 모든 롤도 이 값에 포합됩니다.
데이터베이스 관리자는 매개변수 값을 수정하여 이러한 제한 사항을 변경할 수 있습니다. 매개변수 값이 크면 사용자 세션은 동시에 활성화된 롤을 더 많이 가질수 있습니다.
그러나 매개변수 값이 크면 클수록 각 사용자 세션에 대해 영향을 받으며 롤마다 4바이트씩 필요하기 때문입니다. 한 사용자가 동시에 활성화할 수 있는 롤의 최대 수를 결정한 후 이 값을 MAX_ENABLES_ROLES매개변수에 지정합니다.
   
 
 롤 삭제
  
어떤 경우에는 데이터베이스에서 롤을 삭제해야 합니다. 삭제된 롤을 부여받은 모든 사용자와 롤의 보안 도메인은 삭제도 롤 권한이 없음을 반영하기 위해 즉시 변경됩니다. 삭제된 롤에 간접적으로 부여된 모든 롤도 연관된 보안 도메인으로부터 제거되어야 합니다. 롤 삭제는 모든 사용자의 기본 롤 목록에서 롤을 자동으로 제거합니다.

개체 생성은 롤을 통해 받은 권한에 종속적이지 않으므로 롤 삭제 시 테이블과 다른 개체들은 삭제되지 않습니다.

롤을 삭제하려면 DROP ANY ROLE시스템 권한이나 ADMIN OPTION을 포함하는 롤을 부여받아야 합니다.
다음 명령문은 CLERK롤을 삭제합니다
  
DROP ROLE CLERK;
  
 
 사용자 권한과 롤 부여
  
이곳 에서는 권한 및 롤 부여와 다음 내용을 다룹니다.
  
시스템 권한과 롤 부여
개체 권한과 롤 부여
열에 권한 부여
 시스템 권한과 롤 부여
  
SQL명령어 GRANT를 사용하여 시스템 권한과 롤을 다른 사용자나 롤에 부여할 수 있습니다.
시스템 권한이나 롤을 부여하려면 부여할 모든 시스템의 권한과 롤에 대해 ADMIN_OPTION을 가지고 있어야 합니다.
또한 GRANT ANT ROLE시스템 권한이 있는 사용자는 데이터베이스에 있는 모든 롤을 부여할 수 있습니다.
다음 명령문은 사용자 JWARD에게 시스템 권한과 ACCT_PAY롤을 부여합니다.
  
GRANT create session, accts_pay TO jward;
 
주 : 동일한 GRANT명령문에서 시스템 권한 및 롤을 개체 권한과 함께 부여할 수 없습니다.
    ADMIN OPTION
  
사용자가 롤을 생성할 때 롤은 자동으로 ADMIN OPTION이 있는 생성자에게 부여됩니다.
ADMIN옵션이 있는 권한을 부여받은 사용자는 다음과 같은 확장 기능을 가집니다.
  
권한을 부여받은 사용자는 데이터베이스이 사용자나 다른 롤에 시스템 권한 또는 롤을 부여하거나 철회할 수 있습니다. (사용자는 자기 자신으로부터는 롤을 철회할 수 없습니다.)
권한을 부여받은 사용자는 또한 ADMIN OPTION으로 시스템 권한이나 롤을 부여할 수 있습니다.
롤의 권한을 부여받은 사용자는 롤을 변경하거나 삭제할 수 있습니다.
 

다음 명령문은 보안 관리자가 MICHAEL에게 NEW_DBA롤을 부여합니다.
  
CREATE new_dba TO michael WITH ADMIN OPTION;

사용자 MICHAEL은 NEW_DBA롤에 내포되어 있는 모든 권한뿐만 아니라 필요 시 NEW_DBA롤을 부여, 철회, 또는 삭제할 수 있습니다.
이러한 강력한 기능 때문에 ADMIN OPTION우로 시스템 권한과 롤을 부여할 때 주의해여 합니다.
이러한 권한은 일반적으로 보안 관리자에게 있으며 다른 관리자나 시스템의 다른 사용자에게는 거의 부여되지 않습니다.
  
 
 개체 권한과 롤 부여
  
SQL명령어 GRANT를 사용하여 롤과 사용자에게 개체 권한을 부여할 수 잇습니다.

개체 권한을 부여하려면 다음 조건 중 하나를 만족해야 합니다.
  
사용자가 지정된 개체를 소유하고 있는 경우
사용자가 GRANT OPTION으로 개체 권한을 부여받은 경우
다음 명령문은 EMP테이블의 모든 열에 대한 SELECT, INSERT, DELETE 개체 권한을 사용자 JFEE와 TSMITH에게 부여합니다.
  
GRANT SELECT, INSERT, DELETE ON EMP TO JFEE, JSMITH;

사용자 JFEE와 TSMITH에게 EMP테이블의 ENAME과 JOB열에 대해서만 INSERT개체 권한을 부여하려면 다음 명령문을 수행합니다.
  
GRANT insert( ename, job ) ON emp TO jfee, tsmith;

사용자 JFEE에게 SALARY뷰에 대해 모든 개체 권한을 부여하려면 다음 예처럼 ALL단축키를 사용합니다.
GRANT ALL ON salary TO jfee;

주 : 동일한 GRANT명령문에서 시스템 권한 및 롤을 개체 권한과 함께 부여할 수 없습니다.

 GRANT OPTION
  
스키마에 개체를 포함하는 사용자는 모든 연관된 개체 권한을 GRANT OPTION과 함께 자동으로 부여받습니다.
이러한 큭별한 권한은 퀀한을 부여받은 사용자에게 다음과 같은 확장된 권한을 허용합니다.
  
권한을 부여받은 사용자는 데이터베이스의 모든 사용자와 모든 롤에 개체 권한을 부여할 수 있습니다.
권한을 부여받은 사용자는 GRANT OPTION이 없어도 다른 사용자에게 권한을 부여할 수 잇습니다.
권한을 부여받은 사용자가 GRANT OPTION으로 테이블에 대해 개체 권한을 받았고 권한을 부여받은 사용자가 CREATE VIEW나 CREATE ANY VIEW시스템 권한을 가지고 있다면 권한을 부여받은 사용자는 테이블에 뷰를 생성할 수 있으며 뷰의 해당 권한을 데이터베이스의 다른 사용자나 롤에 부여할 수 있습니다.
 

GRANT OPTION은 롤에 개체 권한을 부여할 때는 사용할 수 없습니다. Oracle은 롤을 부여받은 사용자가 롤을 통해 부여받은 개체 권한을 전달할 수 없도록 롤울 통한 개체 권한 전달을 막습니다.
  
 
 열에 권한 부여
  
테이블의 각 열에 INSERT, UPDATE. 또는 REFERENCES권한을 부여할 수 있습니다.

주 : 열에 INSERT권한을 부여하기 전에 테이블이 NOT NULL제약 조건을 정의한 열을 포함하고 있는지 확인합니다. NOT NULL열 없이 선택적 삽입 기능을 부여한다면 사용자는 테이블에 어떤 행도 삽입할 수 없습니다.
이러한 상황을 방지하려면 각 NOT NULL열을 삽입가능하게 하거나 NULL이 아닌 기본값을 가지도록 합니다. 그렇지 않으면 권한을 부여받은 사용자는 테이블에 행을 삽입할 수 없으며 오류를 받게 됩니다.

SCOTT에게 ACCOUNTS테이블의 ACCT_NO열에 대한 INSERT권한을 부여합니다.
  
GRANT INSERT ( acct_no ) ON accounts TO scott;
   
 
 사용자 권한과 롤 철회
  
이곳 에서는 사용자 권한과 롤을 철회하는 기능과 다음 내용을 다룹니다.
  
시스템 권한과 롤 철회
개체 권한과 롤 철회
 시스템 권한과 롤 철회
  
SQL명령어 REVOKE을 사용하여 시스템권한이나 롤을 철회할 수 있습니다.

시스템 권한이나 롤에 대해 ADMIN OPTION을 가진 사용자는 다른 데이터베이스 사용자나 롤로부터 권한이나 롤을 철회할 수 있습니다. 권한 부여자가 원래의 권한이나 롤을 부여한 사용자일 필요는 없습니다. 또 GRANT ANY ROLE을 가진 사용자는 어떤 롤도 철회할 수 있습니다.

다음 명령문은 TSMITH로부터 CREATE TABLE시스템 권한과 ACCTS_REC롤을 철회합니다.
  
REVOKE crete table, accts_rec FROM tsmith;

주 : 시스템 권한이나 롤에 대해 ADMIN OPTION을 선택하여 철회할 수는 없습니다. 권한과 롤을 철회한 후 ADMIN OPTION없이 권한과 롤을 다시 부여해야 합니다.
   
 개체 권한과 롤 철회
  
개체 권한을 철회하려면 철회자는 철회할 개체 권한을 맨 처음 부여한 사용자여야 합니다.

예를 들어 최초 부여자가 사용지 JFEE와 TSMITH로부터 EMP테이블의 SELECT, INSERT권한을 철회하는 명령문은 다음과 같습니다.
  
REVOKE select, insert ON emp FROM jfee, tsmith;

다음 명령문은 DEPT테이블에서 HUMAN_RESOURCE롤에 처음 부여된 모든 권한을 철회합니다.
  
REVOKE ALL ON dept FROM human_resource;

주 : 위의 명령문은 권한 부여지가 허용한 권한만을 철회합니다. 즉 다른 사용자가 부여한 권한은 철회할 수 없습니다. 개체 권한에 대해 GRANT OPTION만을 선택하여 철회할 수 없습니다.
개체 권한을 철회한 후 GRANT OPTION없이 다시 부여해야 합니다. 사용자 자신의 개체 권한은 철회할 수 없습니다.
    열에 대한 개체 권한 철회
  
사용자는 테이블과 뷰에 대한 INSERT, UPDATE, REFERENCES권한을 특정 열에 선택하여 부여할 수 있지만 유사한 REVOKE명령문에서 열에서 특정 권한만을 철회할 수는 없습니다.
대신 권한부여자는 먼저 테이블이나 뷰의 모든 열에 대한 개체권한을 철회하고 남아 있어야만 하는 특정 권한만을 선택하여 열에 다시 부여해야 합니다.

예를 들어 DEPT테이블의 DEPTNO와 DNAME열에 대한 UPDATE권한을HUMAN_RESOURCES롤에 부여했다고 합시다. DEPTNO열에 대한 UPDATE권한만을 철회하려면 다음 두 명령어를 실행합니다.
  
REVOKE UPDATE ON dept FROM human_resources;
GRANT UPDATE (dname) ON dept TO himan_resources;
  
REVOKE 명령문은 HUMAN_RESOURCES롤로 부터 DEPT테이블의 모든 열에 대한 권한을 철회합니다.
  
GRANT명령문은 HUMAN_RESOURCES롤에 DNAME열에 대한 UPDATE권한을 다시 부여합니다.
   
 REFERENCES권한 철회
  
REFERENCES개체 권한을 부여받은 사용자가 외래 키 제약 조건을 생성하는 권한을 사용한 경우 권한 부여자는 REVOKE명령문에 CASCADE CONSTRAINTS옵션을 지정해야 권한을 철회할 수 있습니다.
  
REVOKE REFERENCES ON drpt FROM jward CASCADE CONSTRAINTS;
  
현재 철회된 REFERENCES권한을 사용하여 정의된 외래 키 제약 조건은 CASCADE CONSTRAINTS옵션을 지정해야 삭제될 수 있습니다.
   
 
 
 권한 철회 효력
  
권한 유형에 따라 권한을 철회할 때 단계적인 효과가 나타날 수 있습니다.
    시스템 권한
  
DDL작업과 관련된 시스템 권한을 철회할 때는 해당 ADMIN OPTION으로 부여되는 가에 관계없이 단계적인 효과를 가지지 않습니다.

단계적인 효과는 DML작업과 관련된 시스템 권한을 철회할 때 관찰될 수 있습니다. 예를 들어 사용자에게 SELECT ANY TABLE권한을 부여했으며 그 사용자가 프로시저를 생성하였다면 사용자의 스키마에 있는 모든 프로시저는 재사용 전에 권한을 다시 부여해야 합니다.
   
 개체 권한
  
개체 권한 철회는 단계적인 효과를 발생할 수 있으므로 REVOKE명령문을 실행하기 전에 나타날 효과를 자세히 조사해야 합니다.
   
 DML 개체 권한과 관련된 개체 권한은 DML,개체 권한을 철회할 때 영향을 받습니다.
   
 ALTER 및 INDEX개체 권한을 철회해도 ALTER와 INDEX DDL개체 권한이 필요한 개체 정의는 영향을 받지 않습니다. 예를 들어 다른 사용자 테이블에 대해 인덱스를 생성한 사용자로부터 INDEX권한을 철회해도 인덱스는 남아 있습니다.
   
 사용자로부터 테이블에 대한 REFERENCES권한을 철회할 때 삭제된 REFEREBNCES권한을 필요로 하는 모든 외래 키 무결성 제약 조건은 자동으로 삭제됩니다.
   
 GRANT OPTION을 시용하여 전달된 개체 권한은 권한 부여자의 개체 권한이 함께 철회됩니다.
예를 들어 USER1이 GRANT OPTION과 함께 SELECT개체 권한을 부여했고 EMP테이블에 대한 SELECT권한을 USER2에 부여했다고 합시다. 이후에 USER1으로부터 SELECT권한을 철회하면 USER2의 권한도 함께 철회됩니다. USER1과 USER2의 철회된 SELECT권한과 모든 개체는 앞에서 설명한 것처럼 영향을 받습니다.
   
 
 사용자 그룹 PUBLIC에 대한 권한 부여 및 철회
  
사용자 그룹 PUBLIC에 권한 또는 롤을 부여하거나 철회할 수 잇습니다. PUBLIC는 모든 데이터베이스 사용자가 사용할 수 있으므로 PUBLIC에 부여된 권한과 롤은 모든 데이터베이스 사용자가 액세스할 수 있습니다.

모든 데이터베이스의 사용자가 특정 권한과 롤을 필요로 한다면 보안 관리자와 데이터베이스 사용자는 해당 권한이나 롤을 PUBLIC에 부여할 수 있습니다. 각 데이터베이스 사용자는 해당 그룹의 현재 작업을 수행하는데 필요한 권한만을 가져야 합니다.

PUBLIC에서 권한을 철회하면 중요한 전달 효과를 발생시킬 수 있습니다. PUBLIC로부터 SELECT ANY TABLE, UPDATE ON emp같은 DML작업과 관련된 권한을 철회하면 함수의 패키지를 포함하여 데이터베이스에 있는 모든 프로시저는 재사용되기 전에 권한을 다시 부여해야 합니다. 따라서 PUBLIC에 DML과 관련된 권한을 부여할 때 신중하게 생각해야 합니다.
    권한 부여와 철회가 영향을 미치는 시기
  
부여하고 찰회한 권한에 따라 권한 부여 및 철회는 서로 다른 시기에 효력을 발생합니다.
    사용자, 롤 또는 PUBLIC에 시스템 권한과 개체 권한을 부여하거나 철회하면 즉시 효력이 발생합니다.
 사용자, 롤 또는 PUBLIC에 롤을 부여하거나 철회하면 현재 사용자 세션이 롤을 부여하거나 철회한 다음 해당 롤을 활성화하기 위해 SET ROLE명령문을 실행했을 때 또는 롤을 철회하거나 부여한 새로운 사용자 세션을 생성한 경우에 효력을 발생합니다.
   
 
 
 운영 체제나 네트워크를 사용한 롤 부여
  
이곳 에서는 운영 체제나 네트워크를 통해 롤을 부여하는 방법과 다음 내용을 다룹니다.
  
운영 체제 롤 식별 사용
운영 체제 롤 관리 사용
OS_ROLES = TRUE일 때 롤 부여 및 철회
OS_ROLES = TRUE일 때 롤 활성화 및 비활성화
운영 체제 롤 관리로 네트워크 접속 사용
보안 관리자가 사용자에게 GRANT및 REVOKE명령문을 사용하여 데이터베이스 롤을 명확하게 부여하거나 철회하는 대신 Oracle을 운영하는 운영체제가 접속할 때 사용자에게 롤을 부여할 수 있습니다.
운영 체제를 사용하여 롤을 관리하고 사용자가 세션을 생성할 때 롤을 Oracle에 전달합니다.
이러한 방법 중 한 부분에서 각 사용자의 기본 롤과 ADMIN OPTION으로 사요자에게 부여된 롤을 식별할 수 있습니다.
사용자에게 롤에 대한 권한을 부여하기 위해 운영 체제를 사용해도 모든 롤은 데이터베이스 내에서 생성되어야 하고 롤에 GRANT명령문을 사용하여 권한을 지정해야 합니다.
사용자의 데이터베이스 롤을 식별하기 위해 운영 체제를 사용항 때의 장점은 오라클 데이터베이스에 대한 권한 관리를 외부화할 수 있다는 것입니다.
운영 체제에 의해 제공되는 보안 기능을 사용하여 사용자의 권한을 제어합니다. 이러한 옵션은 수 많은 시스템 작업에 대한 보안을 중앙 집중화하는 장점을 제공합니다.
예를 들어 MVS Oracle관리자는 데이터베이스 사용자의 롤을 식별하기 위해 RACF그룹을 원할 수 있고 UNIX Oracle관리자는 UNIX그룹 권한을 원할 수 있으며 VMS Oracle관리자는 데이터베이스 사용자의 롤을 식별하기 위한 권한 식별자을 사용할 수 있습니다.

사용자의 데이터베이스 롤을 식별하기 위해 운영 체제를 사용할 때의 최대 단점은 롤 레벨에서먼 권한을 관리할 수 있다는 것입니다. 운영 체제를 사용하여 각 권한을 부여할 수는 없으나 GRANT명령문을 사용하면 데이터베이스내에서 권한을 부여할 수 있습니다.

이러한 기능 사용의 두 번째 단점은 운영 체제가 롤을 관리하면 기본적으로 사용자가 다중 스레드 서버나 다른 네트워크 접속을 통해 데이터베이스에 액세스할 수 없다는 것입니다. 그러나 이러한 기본 사항은 변경할 수 있습니다.
  

 운영 체제 롤 식별 사용
  
세션을 생성할 때 운영 체제를 사용하여 각 사용자의 데이터베이스 롤을 식별하도록 데이터베이스를 작동하려면 초기화 매개변수 OS_ROLES 를 TRUE로 설정합니다. ( 현재 작동중이면 인스턴스를 재시작합니다) 사용자가 데이터베이스 롤을 사용하여 보안 도메인을 초기화합니다.

사용자에 대한 데이터베이스 롤을 식별하려면 각 Oracle사용자의 운영체제 계정은 사용자가 사용할 수 있는 데이터베이스 롤을 표시하는 운영 체제 식별자(그룹, 권한 식별자 등 다른 유사한 이름으로 불림)가 있어야 합니다.
롤 사양은 사용자의 기본 롤과 ADMIN OPTION을 가질 수 있는 롤을 표시할 수 있습니다. 사용자는 운영 체제에 관계없이 운영 체제 레벨에서의 롤 사양은 다음을 따릅니다.
  
   ORA_<ID>_<ROLE>[_[D][A]]
  
ID : ID정의는 운영 체제마다 다릅니다. 예를 들어 VMS에서 ID는 데이터베이스의 인스턴스
      식별자입니다. MVS에서 ID는 시스템 유형입니다. UNIX에서 ID는 시스템ID입니다.
D : 이 선택 문자는 이 롤이 데이터베이스 사용자의 기본 롤임을 나타냅니다.
A : 이 선택 문자는 이 롤이 ADMIN OPTION으로 사용자에게 부여한 롤임을 나타냅니다. 이
      문자를 사용하면 사용자는 다른 롤에만 이 롤을 부여할 수 있습니다. (롤을 관리하기 위
      해 운영 체제를 사용하는 경우 사용자에게 롤을 부여할 수 없습니다.)
  
주 : D또는 A문자를 지정하면 앞에 밑줄을 붙여야 합니다.
    
 운영 체제 롤 관리 사용
  
운영 체제가 롤을 관리할 때 데이터베이스 롤이 운영 체제 사용자에게 부여된다는 것에 유의 하십시요.
OS사용자가 접속할 수 있는 모든 데이터베이스 사용자에게는 인증된 데이터베이스 롤이 활성화되어 있을 것입니다.
이런 이유로 OS_ROLES=TRUE로 설정하면 모든 Oracle사용자를 IDENTIFIED EXTERNALLY로 정의해야 하며 그 결과 데이터베이스 계정은 권한을 부여 받은 OS계정과 관련됩니다.
   
 OS_ROLE=TRUE일 때 부여 및 철회
  
OS_ROLES를 TRUE로 설정하면 운영 체제는 사용자에게 롤을 부여하고 철회하는 것을 완전히 관리합니다.
GRANT명령문을 사용하여 사용자에게 이전에 부여한 롤은 적용되지 않습니다. 그러나 데이터 딕셔너리에는 계속 남아 있습니다. 운영 체제 레벨에서 사용자에게 부여된 롤만이 적용됩니다.
사용자는 롤과 사용자에게 권한만을 부여할 수 있습니다.
  
주 : 운영 체제가 ADMIN OPTION으로 사용자에게 롤을 부여하면 사용자는 다른 롤에만 해당 롤을 부여할 수 있습니다.
   
 OS_ROLES=TRUE일 때 롤 활성화 및 비활성화
  
OS_ROLES를 TRUE로 설정하면 운영 체제가 부여한 롤은 SET ROLE명령어를 사용하여 동적으로 활성화될 수 있습니다.
롤이 암호나 운영 체제 권한 부여를 필요로 하도록 정의되었다면 그대로 적용됩니다. 그러나 OS_ROLES=FALSE일 때 GRANT명령문을 사용하여 롤을 부여해도 사용자 운영 체제 계정에서 식별되지 않은 롤은 SET ROLE명령문에서 지정될 수 없습니다.(사용자가 롤을 지정하면 Oracle은 이를 무시합니다)
OS_ROLES=TRUE면 사용자는 매개변수 MAX_ENABLED_ROLES에 지정한 수만큼의 롤을 활성화할 수 있습니다.
   
 운영 체제 관리로 네트워크 접속 사용
  
운영 체제가 롤을 관리하면 기본적으로 사용자는 다중 스래드 서버를 통해 데이터베이스에 접속할 수 없습니다.
이 제한은 원격 사용자가 비보안 접속을 통해 다른 운영 체제 사용자를 가장할 수 없도록 하기 위해 기본으로 지정되어 있습니다.
  
이와 같은 보안 상의 위험을 초래하지 않고 다중 스래드 서버나 다른 네트워트 접속으로 운영 체제 롤 관리를 사용하려면 데이터베이스 매개변수 파일의 매개변수 REMOTE_OS_ROLES를 TRUE로 설정합니다.
이렇게 변경한 후 인스턴스를 재시작하고 데이터베이스를 마운트하면 효력이 발생합니다. (이 매개변수의 기본값은 FALSE입니다)

 
 
 권한과 롤 정보 나열
  
개체에 대해 부여된 권한을 나열하려면 사용자는 다음 데이터 딕셔너리 뷰에 질의합니다.
    ALL / USER / DBA _COL_PRIVS
 ALL / USER _COL_PRIVS_MADE
 ALL / USER _COL_PRIVS_RECD
 ALL / USER / DBA _TAB_PRIVS
 ALL / USER _TAB_PRIVS_MADE
 ALL / USER _TAB_PRIVS_RECD
 DBA_ROLES
 USER / DBA _ROLE_PRIVS
 USER / DBA _SYS_PRIVS
 COLUMN_PRIVILEGES
 ROLE_ROLE_PRIVS, ROLE_SYS_PRIVS, ROLE_TAB_PRIVS
 SESSION_PRIVS, SESSION_ROLES

[출처] 오라클 권한|작성자 해안도로