1
에서 기존 역할의 역할 만들기 쿼리를 얻을 수있는 방법은 다음과 같이 뭔가를하고 싶지 :내가 오라클 DB
SHOW CREATE ROLE my_role_name;
가 나도 수출 쿼리 옵션에서 그것을 찾을 수 없습니다.
에서 기존 역할의 역할 만들기 쿼리를 얻을 수있는 방법은 다음과 같이 뭔가를하고 싶지 :내가 오라클 DB
SHOW CREATE ROLE my_role_name;
가 나도 수출 쿼리 옵션에서 그것을 찾을 수 없습니다.
DBMS_METADATA 패키지를 사용 :
set long 20000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on
column ddl format a1000
begin
dbms_metadata.set_transform_param (dbms_metadata.session_transform, 'SQLTERMINATOR', true);
dbms_metadata.set_transform_param (dbms_metadata.session_transform, 'PRETTY', true);
end;
/
variable v_role VARCHAR2(30);
exec :v_role := upper('&1');
select dbms_metadata.get_ddl('ROLE', r.role) AS ddl
from dba_roles r
where r.role = :v_role
union all
select dbms_metadata.get_granted_ddl('ROLE_GRANT', rp.grantee) AS ddl
from dba_role_privs rp
where rp.grantee = :v_role
and rownum = 1
union all
select dbms_metadata.get_granted_ddl('SYSTEM_GRANT', sp.grantee) AS ddl
from dba_sys_privs sp
where sp.grantee = :v_role
and rownum = 1
union all
select dbms_metadata.get_granted_ddl('OBJECT_GRANT', tp.grantee) AS ddl
from dba_tab_privs tp
where tp.grantee = :v_role
and rownum = 1
/
출처 :이 일을 https://oracle-base.com/dba/script?category=script_creation&file=role_ddl.sql
감사합니다! –