Pubblicheremo le informazioni sull'accesso e la sicurezza degli utenti nel database di Oracle. Questo post fornirà buone informazioni su Crea utente in Oracle, privilegi di sistema e privilegi di oggetti Oracle, come concedere i privilegi agli utenti, come mostrare tutti i privilegi di un utente in Oracle
CREA istruzione UTENTE
Viene utilizzato per creare un utente (schema).
L'autenticazione predefinita per un nuovo utente è il database. All'utente viene assegnata una password e la password viene mantenuta crittografata nel database. Sono possibili altri due tipi di autenticazione, il primo è l'autenticazione esterna utilizzando il livello del sistema operativo. L'autenticazione esterna verifica la password a livello di sistema operativo.
L'altro è l'autenticazione globale che controlla la password dell'utente nel servizio di sicurezza Oracle o in un altro servizio di directory di terze parti.
Assegnazione degli attributi –
Possiamo modificare gli attributi dell'utente utilizzando ALTER USER. Possiamo modificarli o assegnarli
Verrà creata una dichiarazione utente con alcuni attributi impostati
CREATE USER SCOTT IDENTIFIED BY TTOC DEFAULT TABLESPACE USERS QUOTA 10M ON USERS TEMPORARY TABLESPACE temp QUOTA 5M ON system PROFILE application_user PASSWORD EXPIRE
Privilegi del sistema Oracle
Consente al beneficiario di creare, modificare, eliminare e gestire gli oggetti del database. Ad esempio, i privilegi per creare tablespace e per eliminare le righe di qualsiasi tabella in un database sono privilegi di sistema.
Oracle ha più di 100 privilegi di sistema (trovati nella tabella SYSTEM_PRIVILEGE_MAP).
Ci sono 2 privilegi speciali in un database Oracle chiamato SYSDBA e SYSOPER. Entrambi i privilegi consentono operazioni di database come STARTUP, SHUTDOWN, OPEN, MOUNT, BACKUP, ARCHIVELOG e RECOVER. SYSDBA consente il comando CREATE DATABASE e le opzioni CHANGE CHARACTER SET.
I privilegi di sistema sono forniti dall'amministratore del database agli utenti utilizzando il comando grant e revocati utilizzando il comando revoke
Se il DBA deve fornire il privilegio di sistema a qualcuno in modo che anche un'altra persona possa concederlo, allora deve essere fornito con l'opzione di amministratore
GRANT create session TO user; GRANT create session TO user with admin option; Revoke create session from user;
Privilegi del sistema utente
Quando l'utente viene creato, generalmente concediamo i seguenti privilegi di sistema
- CREA SESSIONE
- CREA TABELLA
- CREA VISUALIZZA
- CREA SEQUENZA
- CREA PROCEDURA
Con questo utente può iniziare a creare la tabella e altri oggetti.
Sample
CREATE USER "TEST" IDENTIFIED BY TEST
DEFAULT TABLESPACE "TOOLS"
TEMPORARY TABLESPACE "TEMP";
grant CREATE TRIGGER to TEST;
grant CREATE PROCEDURE to TEST;
grant CREATE SESSION to TEST;
grant CREATE TYPE to TEST;
grant CREATE TABLE to TEST;
grant CREATE VIEW to TEST;
grant ALTER SESSION to TEST;
grant CREATE SEQUENCE to TEST;
grant CREATE SYNONYM to TEST;
grant CREATE ANY SYNONYM to TEST;
grant UNLIMITED TABLESPACE to TEST;
Privilegi oggetto Oracle
Questi sono concessi su oggetti di database (come una tabella, una vista, una procedura, ecc...)
Il proprietario ha tutti i privilegi e un proprietario può concedere privilegi specifici sugli oggetti
Il proprietario può fornire i privilegi utilizzando il comando seguente
GRANT privileges ON object TO user;
I privilegi possono essere selezionare, inserire, aggiornare, eliminare o TUTTI
Se il proprietario vuole fornire privilegi a tutti gli utenti
GRANT privileges ON object TO public;
Se il proprietario desidera fornire il privilegio all'utente con un'opzione di concessione. Fondamentalmente, ciò significa che il beneficiario può assegnare ulteriormente questo privilegio ad altri
GRANT privileges ON object TO user with grant option;
Allo stesso modo, abbiamo il comando di revoca per rimuovere i privilegi dagli oggetti
Cos'è un ruolo oracolo?
Un ruolo è un oggetto di database utilizzato per imporre i privilegi. A un utente può essere assegnato un ruolo per impostare i privilegi sugli oggetti del database:
GRANT EBS_ADMIN TO SCOTT;
Concederà il ruolo EBS_ADMIN con tutti i suoi privilegi all'utente SCOTT.
Creazione e utilizzo di ruoli
Il comando CREATE ROLE [IDENTIFIED BY
Qual è la differenza tra i privilegi di sistema e di oggetto?
Tabelle e viste del dizionario dei dati
Oracle ha fornito viste del dizionario dei dati per ottenere informazioni sui privilegi
Esistono tre categorie di visualizzazioni
Controllo delle visualizzazioni dei privilegi
Query utili per i privilegi
come controllare i privilegi dell'utente in Oracle
col role for a16 col pv for a75 hea 'PRIVILEGE OR ROLE' break on role on type skip 1 define usercheck = 'SH' select grantee, 'ROL' type, granted_role pv from dba_role_privs where grantee = '&usercheck' union select grantee, 'PRV' type, privilege pv from dba_sys_privs where grantee = '&usercheck' union select grantee, 'OBJ' type, max(decode(privilege,'WRITE','WRITE,'))||max(decode(privilege,'READ','READ'))|| max(decode(privilege,'EXECUTE','EXECUTE'))||max(decode (privilege,'SELECT','SELECT'))|| max(decode(privilege,'DELETE',',DELETE'))||max(decode (privilege,'UPDATE',',UPDATE'))|| max(decode(privilege,'INSERT',',INSERT'))||' ON '||object_type||' "'||a.owner||'.'||table_name||'"' pv from dba_tab_privs a, dba_objects b where a.owner=b.owner and a.table_name = b.object_name and a.grantee='&usercheck' group by a.owner,table_name,object_type,grantee union select username grantee, '---' type, 'empty user ---' pv from dba_users where not username in (select distinct grantee from dba_role_privs) and not username in (select distinct grantee from dba_sys_privs) and not username in (select distinct grantee from dba_tab_privs) and username like '%&usercheck%' group by username order by grantee, type, pv;
Determina i privilegi di sistema concessi all'utente
SELECT GRANTEE, PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE = 'USER';
Verifica quali privilegi di tabella sono stati concessi da te ad altri utenti.
SELECT * FROM USER_TAB_PRIVS_MADE
Verifica quali privilegi di tabella ti sono stati concessi da altri utenti
SELECT * FROM USER_TAB_PRIVS_RECD;
Verifica quali privilegi a livello di colonna sono stati concessi da te ad altri utenti.
SELECT * FROM USER_COL_PRIVS_MADE;
Verifica quali privilegi a livello di colonna ti sono stati concessi da altri utenti
SELECT * FROM USER_COL_PRIVS_RECD;
Verifica quali privilegi vengono concessi ai ruoli
SELECT * FROM USER_ROLE_PRIVS;
Come concedere e revocare i privilegi in Oracle
Objects grant/revoke from user grant select on dept to public; revoke select on dept from public; Objects grant/revoke from Role grant delete on dept to dept_role; revoke update on dept from dept_role;
Link correlati
Gestione dei privilegi e dei ruoli dell'utente:documentazione Oracle per ulteriori riferimenti
Viste Oracle:guida completa su come creare viste Oracle, rilasciare viste Oracle, modificare viste Oracle, Come determinare la query della vista già creata
creare tabella in Oracle:le tabelle sono l'unità di base dell'archiviazione dei dati in un database Oracle. descriviamo come utilizzare il comando Oracle create table per creare una tabella con una chiave esterna/chiave primaria , Come eliminarli e modificarli
creare un utente in Oracle 12c :Scopri come creare un utente comune in Oracle 12c, creare un utente comune e locale, creare un ruolo comune e un ruolo locale e come gestirli
Spero che il post ti piaccia. Si prega di fornire il feedback
Corsi consigliati
Ecco il bel corso Udemy per Oracle SQL
Oracle-Sql-Step-by-step:questo corso copre SQL di base, join, creazione di tabelle e modifica della sua struttura, creazione di viste, unione, unione, tutto e molto altro . Un ottimo corso e un corso indispensabile per principianti SQL
Il corso completo di certificazione Oracle SQL :Questo è un buon corso per chiunque voglia essere pronto per il lavoro per le competenze di sviluppatore SQL. Un bel corso spiegato
Oracle SQL Developer:Essentials, Tips and Tricks :lo strumento di sviluppo Oracle Sql è utilizzato da molti sviluppatori. Questo corso offre trucchi e lezioni su come utilizzarlo in modo efficace e diventare uno sviluppatore sql produttivo
Oracle SQL Performance Tuning Masterclass 2020 :l'ottimizzazione delle prestazioni è una delle abilità critiche e più ricercate. Questo è un buon corso per conoscerlo e iniziare a ottimizzare le prestazioni di sql