Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 19 di 41
  • livello principiante
Indice lezioni

Privilegi di sistema

Assegnare agli utenti la capacità di connessione al server e la possibilità di eseguire operazioni in una sessione
Assegnare agli utenti la capacità di connessione al server e la possibilità di eseguire operazioni in una sessione
Link copiato negli appunti

Analizzeremo essenzialmente due privilegi di sistema: CREATE SESSION e CONNECT. Connettiamoci al database "ARCHIVIO", mediante l'utente "sampras", senza il bisogno di aprire una nuova sessione di SQL* Plus.

SQL> CONNECT sampras/pete@arch-serv
ERROR:
ORA-01045: user SAMPRAS lacks CREATE SESSION privilege; logon denied
Avvertenza: Connessione a ORACLE interrotta.

Oracle solleva l'errore ORA-01045 quando si cerca di stabilire la connessione ad un database mediante un utente che non ha il privilegio di connessione.

Ogni volta che si crea un nuovo utente, questi non ha il permesso di connessione al database: esiste all'interno del DB e non può fare assolutamente nulla. Il privilegio di sistema CREATE SESSION concede all'utente specificato la capacità di connettersi al proprio database.

Concediamo all'utente "sampras" il privilegio di connessione al database "ARCHIVIO" ed una quota di 1 megabyte nel tablespace "users":

SQL> GRANT CREATE SESSION TO sampras;

SQL> ALTER USER sampras QUOTA 1M ON users;

Se proviamo nuovamente la connessione al database con l'utente "sampras" notiamo che non viene più sollevato l'errore e possiamo accedere.

Proviamo allora a creare una nuova tabella con l'utente "sampras".

SQL> CREATE TABLE prova
  2  ( id NUMBER(2)
  3  );

CREATE TABLE prova
*
ERRORE alla riga 1:
ORA-01031: privilegi insufficienti

Oracle solleva un nuovo errore perchè il privilegio di sistema CREATE SESSION consente il login al database ma non la creazione di oggetti, anche se nel proprio schema. Revochiamo il privilegio di sistema CREATE SESSION e proviamo con CONNECT.

SQL> CONNECT system/mu56dsa
Connesso.

SQL> REVOKE CREATE SESSION FROM sampras;
Revoca riuscita.

SQL> GRANT CONNECT TO sampras;
Concessione riuscita.

Ora possiamo riprovare la con l'utente "sampras" e la creazione della tabella: al posto dell'errore Oracle mostrerà il messaggio di conferma "Creata tabella".

Quindi il privilegio di sistema CONNECT consente sia la connessione al database sia la possibilità di creare oggetti nel proprio schema.

Ti consigliamo anche