Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> software >> SQL Server >> .

Come trovi i privilegi degli utenti in Oracle?

Esistono diversi modi per trovare i privilegi degli utenti in Oracle, a seconda del livello di dettaglio di cui hai bisogno e se stai guardando utenti specifici o a livello di sistema. Ecco alcuni metodi comuni:

1. Usando le visualizzazioni `dba_sys_privs` e` dba_tab_privs`:

Queste visualizzazioni del dizionario dei dati forniscono informazioni complete sui privilegi di sistema e oggetti concessi agli utenti. `DBA_SYS_PRIVS` mostra i privilegi di sistema (ad esempio,` Crea table`, `Crea session`), mentre` dba_tab_privs` mostra i privilegi degli oggetti (ad esempio, `Select`,` Insert`, `Update` su tabelle specifiche).

* Per i privilegi di sistema:

`` `sql

Seleziona * da DBA_SYS_PRIVS WHERE BENEATE ='Nome utente';

`` `

Sostituisci `nome utente` con il nome utente reale.

* Per i privilegi degli oggetti:

`` `sql

Seleziona * da DBA_TAB_PRIVS WHERE BENNEGGIO ='nome utente';

`` `

Sostituisci `nome utente` con il nome utente reale. Questo mostrerà tutti i privilegi su tutti i tavoli. Puoi perfezionare questa query per esaminare tavoli specifici:

`` `sql

Seleziona * da DBA_TAB_PRIVS WHERE BENNEGGIO ='Username' e Table_name ='Table_Name';

`` `

Sostituisci `table_name` con il nome della tabella.

2. Usando le visualizzazioni `all_sys_privs` e` all_tab_privs`:

Queste viste forniscono informazioni sui privilegi che un utente * ha * direttamente o indirettamente attraverso ruoli. Ciò è utile per un utente che controlla i propri privilegi. Se ti connetti come utente, puoi utilizzare queste viste:

* Per i privilegi di sistema:

`` `sql

Seleziona * da all_sys_privs;

`` `

* Per i privilegi degli oggetti:

`` `sql

Seleziona * da all_tab_privs;

`` `

Puoi anche filtrare per nome utente come le visualizzazioni `dba_`.

3. Utilizzando le visualizzazioni `user_sys_privs` e` user_tab_privs`:

Queste visualizzazioni mostrano solo i privilegi concessi direttamente all'utente connesso. Non mostrano privilegi concessi attraverso ruoli. Utile per un utente che vede solo i propri privilegi diretti.

* Per i privilegi di sistema:

`` `sql

Seleziona * da user_sys_privs;

`` `

* Per i privilegi degli oggetti:

`` `sql

Seleziona * da user_tab_privs;

`` `

4. Usando la colonna `Role` nelle viste precedenti:

La colonna `Role` in` dba_sys_privs`, `dba_tab_privs`,` all_sys_privs`, `all_tab_privs` indica se il privilegio è concesso direttamente o attraverso un ruolo. Se viene concesso attraverso un ruolo, dovrai indagare sui privilegi concessi a quel ruolo. Puoi trovare informazioni sui ruoli utilizzando le visualizzazioni `dba_roles`,` all_roles` o `user_roles`, a seconda del livello di accesso.

5. Utilizzo di `Show User`:

Questo comando (in SQL*Plus o SQL Developer) mostrerà l'utente attualmente connesso. Questo non mostra direttamente i privilegi, ma è un punto di partenza per usare le viste sopra.

Considerazioni importanti:

* Ruoli del database: Gli utenti spesso ricevono privilegi indirettamente attraverso ruoli. È necessario esaminare i ruoli a cui appartiene un utente e i privilegi che hanno quei ruoli. Ciò richiede di query sulle visualizzazioni `dba_roles`,` all_roles` o `user_roles`.

* Privilegi a cascata attraverso i ruoli: I ruoli possono concedere privilegi ad altri ruoli. Questo può creare strutture di privilegio complesse.

* Livelli di accesso: Sono necessari i privilegi appropriati (ad es. `Seleziona qualsiasi dizionario`) per interrogare le viste del dizionario dei dati. Le visualizzazioni `dba_` richiedono generalmente il ruolo` dba`.

Ricorda di sostituire `nome utente` e` table_name` con il nome utente e il nome della tabella effettivo che ti interessa. Esegui sempre queste query con cautela, in particolare quelle che utilizzano le visualizzazioni `dba_`, poiché forniscono accesso a informazioni sensibili.

 

software © www.354353.com