W Oracle SQL Developer otwórz sekcję DBA, Bezpieczeństwo i Użytkownicy.
Wybierz swoje konto.
Kliknij prawym przyciskiem myszy.
Wybierz Utwórz polubienie.
Włącz opcję „Kopiuj uprawnienia obiektu”
Podaj nową nazwę użytkownika/hasło.
Voila.
Przejdź do strony SQL, aby zobaczyć kod, który wyciągnęliśmy dla Ciebie ze słownika danych.
Pobrał limity, role, uprawnienia systemowe i uprawnienia obiektu.
W wersji 18.1 możesz również po prostu otworzyć użytkownika i przejść do strony SQL i skopiować/wkleić/zamienić nazwę schematu w dostarczonym tam kodzie.
Niestety! (Słyszę, jak mówisz, żeby to zrobić, potrzebuję KODU).
Możesz zobaczyć SQL, którego używamy do uzyskania tych informacji z bazy danych, otwierając panel Log w SQL Developer i klikając stronę Statements.
Oto ten kod:
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;