Oracle SQL Developerで、「DBA」、「セキュリティ」、および「ユーザー」セクションを開きます。
アカウントを選択してください。
右クリックします。
選択して、「いいね」を作成します。
「オブジェクト特権のコピー」をオンに切り替えます
新しいユーザー名/パスワードを入力します。
出来上がり。
SQLページに移動して、データディクショナリから取得したコードを確認してください。
クォータ、ロール、システム特権、およびオブジェクト特権を取得しました。
バージョン18.1では、ユーザーを開いてSQLページに移動し、そこに提供されているコードのスキーマ名をコピー/貼り付け/置換することもできます。
ああ! (これを行うにはコードが必要だとおっしゃっています。)
SQL Developerで「ログ」パネルを開き、「ステートメント」ページをクリックすると、DBからこの情報を取得するために使用しているSQLを確認できます。
そのコードは次のとおりです:
select M.NAME,
decode(
NVL(
S.ADMIN_OPTION,
'NULL'
),
'NO',
'YES',
'NULL',
'NO',
'YES'
) GRANTED,
NVL(
ADMIN_OPTION,
'NO'
) ADMIN
from SYSTEM_PRIVILEGE_MAP M,
(
select *
from DBA_SYS_PRIVS
where (
GRANTEE =?
or ? = null
)
) S
where S.PRIVILEGE (+) = M.NAME
order by 1;
select R.ROLE,
decode(
S.NAME,
R.ROLE,
'YES',
'NO'
) GRANTED,
NVL(
S.ADMIN,
'NO'
) ADMIN,
NVL(
S.DEF,
'NO'
) DEF
from DBA_ROLES R,
(
select GRANTED_ROLE NAME,
ADMIN_OPTION ADMIN,
DEFAULT_ROLE DEF
from DBA_ROLE_PRIVS
where GRANTEE =?
) S
where S.NAME (+) = R.ROLE
and R.AUTHENTICATION_TYPE != 'GLOBAL'
order by 1;
select OWNER,
TABLE_NAME,
PRIVILEGE,
GRANTABLE
from DBA_TAB_PRIVS
where GRANTEE =?;
select ACCOUNT_STATUS,
DEFAULT_TABLESPACE DEF,
TEMPORARY_TABLESPACE TEMP,
PASSWORD,
EXTERNAL_NAME,
EDITIONS_ENABLED,
ALL_SHARD
from DBA_USERS
where USERNAME =?;
select T.TABLESPACE_NAME,
NVL(
Q.UNLIMITED,
'NO'
) UNLIMITED,
Q.QUOTA,
Q.UNIT,
T.CONTENTS
from DBA_TABLESPACES T,
(
select TABLESPACE_NAME,
decode(
MAX_BYTES,
-1,
'YES',
'NO'
) UNLIMITED,
decode(
MAX_BYTES,
-1,
null,
MAX_BYTES / 1024
) QUOTA,
'K' UNIT
from DBA_TS_QUOTAS
where (
USERNAME =:1
or :1 = null
)
) Q
where Q.TABLESPACE_NAME (+) = T.TABLESPACE_NAME
order by 1;