Qualcuno può dirmi come mostrare tutti i privilegi/le regole di un utente specifico in sql-console?Come mostrare tutti i privilegi di un utente in oracle?
risposta
È possibile provare queste seguenti viste.
SELECT * FROM USER_SYS_PRIVS;
SELECT * FROM USER_TAB_PRIVS;
SELECT * FROM USER_ROLE_PRIVS;
amministratori di database e gli altri utenti di alimentazione possono trovare i privilegi concessi agli altri utenti con le DBA_
versioni di questi stessi punti di vista. Sono coperti nello documentation.
Queste visualizzazioni mostrano solo i privilegi concessi direttamente all'utente. Trovare tutti i privilegi, compresi quelli concessi indirettamente tramite ruoli, richiede più complicate istruzioni SQL ricorsive:
select * from dba_role_privs connect by prior granted_role = grantee start with grantee = '&USER' order by 1,2,3;
select * from dba_sys_privs where grantee = '&USER' or grantee in (select granted_role from dba_role_privs connect by prior granted_role = grantee start with grantee = '&USER') order by 1,2,3;
select * from dba_tab_privs where grantee = '&USER' or grantee in (select granted_role from dba_role_privs connect by prior granted_role = grantee start with grantee = '&USER') order by 1,2,3,4;
Ci sono vari script galleggianti intorno che faranno che a seconda di come pazzo che si desidera ottenere. Personalmente utilizzerei Pete Finnigan find_all_privs script.
Se si desidera scrivere da soli, la query diventa piuttosto impegnativa. Agli utenti possono essere concessi privilegi di sistema che sono visibili in DBA_SYS_PRIVS
. Possono essere concessi i privilegi dell'oggetto che sono visibili in DBA_TAB_PRIVS
. E possono essere assegnati ruoli che sono visibili in DBA_ROLE_PRIVS
(i ruoli possono essere predefiniti o non predefiniti e possono richiedere anche una password, quindi solo perché un utente ha ottenuto un ruolo non significa che l'utente possa necessariamente utilizzare i privilegi ha acquisito attraverso il ruolo di default). Ma a questi ruoli possono, a loro volta, essere concessi privilegi di sistema, privilegi di oggetti e ruoli aggiuntivi che possono essere visualizzati guardando a ROLE_SYS_PRIVS
, ROLE_TAB_PRIVS
e ROLE_ROLE_PRIVS
. Lo script di Pete attraversa queste relazioni per mostrare tutti i privilegi che finiscono per fluire verso un utente.
Un'altra risorsa utile:
http://psoug.org/reference/roles.html
- DBA_SYS_PRIVS
- DBA_TAB_PRIVS
- DBA_ROLE_PRIVS
Tranne se non si dispone di ruoli 'DBA' o' SYS' e si desidera solo trovare i privilegi del proprio account. – vapcguy
È possibile utilizzare sotto codice per ottenere tutta la lista di privilegi da tutti gli utenti.
select * from dba_sys_privs
- 1. Come trovare i privilegi e i ruoli concessi a un utente in Oracle?
- 2. Oracle - concedere privilegi a tutti gli utenti
- 3. Concessione di "Crea directory" Privilegi in Oracle
- 4. Dichiarazioni Oracle 11g per creare un nuovo utente e concedere i privilegi?
- 5. Persi tutti i privilegi in MySQL
- 6. Concessione dei privilegi DBA all'utente in Oracle
- 7. Come concedere tutti i privilegi sulle viste all'utente arbitrario
- 8. MySQL: creazione di un utente con privilegi di root
- 9. Ansible: creare un utente con privilegi sudo
- 10. È possibile visualizzare i privilegi della tabella utente Oracle senza avere il privilegio DBA?
- 11. Come posso cancellare i privilegi in Perl?
- 12. C'è un modo per CONCEDERE TUTTI I PRIVILEGI allo stesso utente da più indirizzi LAN in un singolo comando?
- 13. Come posso ricevere tutti i post di un utente specifico
- 14. SQL Server 2008: come concedo i privilegi a un nome utente?
- 15. Come mostrare tutti i percorsi disponibili in primavera?
- 16. django paginator - Come mostrare tutti i numeri di pagina disponibili
- 17. Come verificare se tutti i campi sono univoci in oracle?
- 18. Esecuzione di una stored Oracle Proc come un altro utente
- 19. Oracle tutti i riferimenti alle chiavi esterne
- 20. Progetto QtCreator CMake - come mostrare tutti i file di progetto
- 21. Come posso visualizzare tutti i valori possibili in un SuggestBox
- 22. Come si de-elevare i privilegi di un processo figlio
- 23. Ricerca di tutti i gruppi gestiti da un utente
- 24. come creare il ruolo duplicato di un utente in postgres
- 25. Come faccio a controllare se un utente dotato di privilegi di amministratore locale in Win32
- 26. Come ottenere i privilegi di root a livello di programmazione?
- 27. Oracle - Come creare un utente in sola lettura
- 28. CellBrowser GWT: come mostrare sempre tutti i valori?
- 29. Come ottenere i privilegi utente correnti in MS Dynamics CRM sul lato server
- 30. ReSharper, come mostrare tutti i suggerimenti? qualsiasi tastiera
Lo script è impressionante appena controllato fuori –
È necessario privilegi al pacchetto UTL_FILE altrimenti si ottiene un errore durante l'esecuzione di script di Pete Finnigan: "identificatore 'UTL_FILE' deve essere dichiarato". È possibile connettersi come sys con roll sysdba tramite SQL Developer e quindi funzionerà o concederà i privilegi di esecuzione a questo pacchetto utilizzando: concessione esecuzione su UTL_FILE a; –
Jan
E per quelli di noi senza privilegi 'SYS' e vogliono solo vedere i privilegi del nostro account, la sceneggiatura è assolutamente inutile. Non ho accesso a 'UTL_FILE' né a' DBA_SYS_PRIVS' e alle altre aree 'DBA' e' SYS' a cui lo script guarda. – vapcguy