我们将聘请外部审计人员对我们的Oracle数据库进行审核.他们将运行一个工具来执行审查,为此,他们需要一个可以连接到数据库并从中获取信息的用户ID.
我们在数据库中有一个现有用户.但是,它是一个生产ID,我们不能把它锁定.我们希望克隆/复制此ID,包括其角色和权限.
我们有办法在Oracle中这样做吗?
用户创建:
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>