Oracle 데이터베이스 사용자 복제


17

Oracle 데이터베이스에 대한 검토를 수행하기 위해 외부 감사 담당자가 참석하게됩니다. 그들은 검토를 수행하기위한 도구를 실행할 것이며,이를 위해서는 데이터베이스에 연결하고 정보를 얻을 수있는 사용자 ID가 필요합니다.

데이터베이스에 기존 사용자가 있습니다. 그러나 프로덕션 ID이므로 잠글 수 없습니다. 역할과 권한을 포함하여이 ID를 복제 / 복제하고 싶습니다.

오라클에서 그렇게 할 수있는 방법이 있습니까?

답변:


21

사용자 생성 :

select dbms_metadata.get_ddl( 'USER', 'PHIL' ) from dual;

기본 역할 :

select dbms_metadata.get_granted_ddl( 'DEFAULT_ROLE', 'PHIL' ) from dual;

시스템 보조금 :

select dbms_metadata.get_granted_ddl( 'SYSTEM_GRANT', 'PHIL' ) from  dual;

개체 보조금 :

select dbms_metadata.get_granted_ddl( 'OBJECT_GRANT', 'PHIL' ) from dual;

역할 보조금 :

select dbms_metadata.get_granted_ddl( 'ROLE_GRANT', 'PHIL' ) from dual;

할당량 :

select dbms_metadata.get_granted_ddl( 'TABLESPACE_QUOTA', 'PHIL' ) from dual;

위의 결과 중 어느 것도 출력되지 않으면 다음과 같은 예외가 발생합니다.

SQL> select dbms_metadata.get_granted_ddl( 'TABLESPACE_QUOTA', 'PHIL' ) from dual;
ERROR:
ORA-31608: specified object of type TABLESPACE_QUOTA not found
ORA-06512: at "SYS.DBMS_METADATA", line 4018
ORA-06512: at "SYS.DBMS_METADATA", line 5991
ORA-06512: at line 1

no rows selected

SQL>

그런 다음 검색을 수행하고 출력을 대체하여 사용자 이름을 변경하십시오.


DDL 생성은 기존 사용자를 큰 따옴표로 묶습니다. 기존 사용자 이름을 바꾸는 것이 매우 간단합니다.
Andrew Wolfe

1
성공하려면 새 사용자를 작성할 때 ROLE_GRANT가 DEFAULT_ROLE 문 앞에 와야합니다.
Theofilos

@Theofilos 감사, 편집 됨
Betlista
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.