Oracle Drop degli utenti

Oracle Drop degli utenti
Come amministratore del database, si incontrerà tali istanze in cui è utile la rimozione di un utente specifico da un database Oracle, sia che si tenta di provare a pulire il database e rimuovere gli oggetti non validi o ottimizzare le prestazioni del database.

Questo post discuterà di come è possibile utilizzare il comando utente drop in Oracle per eliminare un determinato utente dal database.

Dichiarazione utente di Oracle Drop

Come affermato, il comando drop utente consente di rimuovere un account utente dal database. Ciò include anche la rimozione di tutti gli oggetti dello schema associati dal database.

Di seguito è riportato uno snippet di codice che dimostra la sintassi del comando utente drop nel server Oracle:

Drop User Username [Cascade];

Iniziamo invocando il comando utente drop, seguito dal nome utente dell'utente che desideriamo rimuovere dal database.

L'opzione Cascade consente a Oracle di rimuovere tutti gli oggetti dello schema associati come tabelle, viste, funzioni, ecc., per quell'utente.

Puoi anche superarlo rimuovendo tutti gli oggetti schema collegati prima di rimuovere l'account utente. Per semplicità, utilizzare l'opzione Cascade e consentire al motore del database di rimuovere gli oggetti dello schema associato prima di abbandonare l'account utente di destinazione.

In alcuni casi, Oracle potrebbe non rimuovere gli oggetti dello schema se altri oggetti nel database li fanno riferimento. In tal caso, Oracle invalida i riferimenti target prima di rimuovere l'utente. Ciò rilascia l'account target per la rimozione senza alcuna restrizione o errore.

Tieni presente che ciò può influenzare i vari oggetti come viste materializzate. Allo stesso modo, il motore del database non rimuoverà i ruoli creati dall'utente di destinazione.

Esempio Drop Drop Command Illustration

I seguenti sono esempi che dimostrano come abbandonare un utente di database in Oracle.

Crea un utente di database

Inizia accedendo al database Oracle e crea un nuovo utente:

$ sqlplus sys come sysdba;
SQL*Plus: versione 19.0.0.0.0 - Produzione su sabato 26 novembre 02:53:44 2022
Versione 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. Tutti i diritti riservati.
Inserire la password:
Collegato a:
Oracle Database 19C Enterprise Edition Release 19.0.0.0.0 - Produzione
Versione 19.3.0.0.0

Una volta effettuato l'accesso al server, creare un utente per scopi dimostrativi. Puoi saltare questo passaggio se hai già un utente di destinazione che desideri rimuovere.

SQL> Crea Python utente identificato da password124;
Utente creato.

Il comando precedente crea un utente senza oggetti schema. In questo caso, possiamo eseguire il comando drop utente senza ottenere alcun errore o inizialmente rimuovere gli oggetti associati.

Esempio 1: Oracle Rimuovi l'utente senza oggetti Schema associati

In questo esempio, dimostriamo come rimuovere un utente senza oggetti schema collegati chiamando il comando utente drop come segue:

SQL> Drop User Python;
L'utente è stato abbandonato.

Come puoi vedere, abbiamo rimosso correttamente l'utente Python senza rimuovere gli oggetti dello schema o chiamare il parametro Cascade.

Esempio 2: Oracle Rimuovi l'utente con oggetti Schema

Per dimostrare come utilizzare il comando utente drop su un utente con oggetti schema associati, iniziamo creando un utente con le autorizzazioni per creare una tabella e una sessione.

Un'affermazione di esempio è la seguente:

SQL> Crea Python utente identificato dalla quota di password124 illimitata sugli utenti;
Utente creato.
SQL> Grant Crea table, Crea sessione a Python;
Grant è riuscito.

Le dichiarazioni precedenti un utente Python con una quota illimitata sulla tabella degli utenti. Poiché si tratta di un account di prova, è possibile impostare qualsiasi dimensione della quota richiesta.

Una volta impostata l'utente, accedi come account e crea una nuova tabella come segue:

SQL> Connetti Python/Password124
Collegato.

Una volta connesso, crea una tabella:

Crea table Sample_data (
Numero ID,
first_name varchar2 (50),
ip_address varchar2 (20),
btc_address varchar2 (50),
Credit_Card Varchar2 (50),
Identificatore varchar2 (40),
Chiave primaria del vincolo Sample_PK (ID)
);

Successivamente, esci dalla sessione utente di Python.

SQL> Disconnect
Disconnesso
SQL> Connetti Sys come sysdba
Inserire la password:
Collegato.

In questo caso, se tentiamo di rimuovere l'utente di Python chiamando il comando utente DROP, riceviamo un messaggio che ci dice che dobbiamo in cascata gli oggetti associati come segue:

SQL> Drop User Python;

Messaggio di errore:

Errore alla riga 1:
ORA-01922: Cascade deve essere specificato per far cadere "Python"

Pertanto, per rimuovere l'utente di Python, dobbiamo prima abbandonare la tabella associata o specificare l'opzione Cascade come segue:

SQL> Drop User Python Cascade;
L'utente è stato abbandonato.

In tal caso, Oracle può rimuovere l'utente e gli oggetti dello schema correlati.

Conclusione

In questo post, abbiamo discusso e illustrato l'utilizzo del comando utente drop nei database Oracle. Utilizzare il comando Utente DROP per rimuovere un utente senza oggetti schema associati dal database. Se l'utente ha oggetti schema collegati, includi l'opzione Cascade per rimuovere l'utente e gli oggetti correlati.