SlideShare a Scribd company logo
1 of 11
Oracle
Sicurezza
Utenti – Ruoli - Privilegi
Ogni utente ha un nome e una password e possiede oggetti personali in Oracle.
Un ruolo è costituito da una serie di privilegi. Ogni utente può avere un ruolo o
dei privilegi specifici.
Sono privilegi di sistema consentono di eseguire gruppi specifici di comandi:
CREATE TABLE consente di creare delle tabelle.
I privilegi su oggetti del database offrono privilegi su alcuni oggetti specifici
Utenti
In Oracle esistono molti utenti predefiniti tra cui SYS e SYSTEM.
Per creare altri utenti è possibile collegarsi come SYSTEM.
Per creare un utente si usa la sintassi
CREATE USER pippo IDENTIFIED BY pluto
(Usando IDENTIFIED EXTERNALLY si usano le impostazioni del sistema operativo)
Per modificare un’utente si usa un comando ALTER
ALTER USER pippo IDENTIFIED BY paperino
(per altro esiste anche il comando password di SQLPLUS)
Per eliminate un utente si usa il comando
DROP USER pippo [CASCADE]
CASCADE permette di eliminare tutti gli oggetti posseduti dall’utente
In realtà pippo non può collegarsi finché non ha il privilegio di creare una sessione
GRANT CREATE SESSION TO pippo
Profili
Inoltre l’amministratore può definire un profilo per l’utente stabilendo la durata della
password, il numero di tentativi prima del blocco.
create profile LIMITED PROFILE limit
FAILED LOGON ATTEMPTS 5;
create user PINCO identified by PALLINO
profile LIMITED PROFILE
Dopo 5 tentativi l’utente si blocca, per sbloccarlo
alter user PINCO account unlock;
Oppure per bloccarlo
alter use PINCO account lock
Scadenza della Password
Per impostare una password che scade dopo 30 giorni
alter profile LIMITED_PROFILE limit
PASSWORD_LIFE_TIME 30
Dopo tale periodo viene richiesta una nuova password, al prossimo collegamento. Per
altro è possibile forzare la scedenza di una passord con:
alter user PINCO password expire
O anche indicare password expire subito all’atto della creazione dell’utente
Le informazioni sugli utenti sono presenti nel data dictionary nelle viste:
DBA_USERS o USER_USERS
RUOLI STANDARD
• CONNECT è un ruolo che dà la possibilità di connettersi e creare alcuni oggetti nel
proprio schema (tabelle, viste, sequenze, sinonimi, cluster).
• RESOURCE è un ruolo per utenti più esigenti che necessitano anche la creazione di
Stored procedure, triggers, tipi di dati eccetera.
• DBA ha tutti i privilegi di sistema, tra cui quello di concedere privilegi, e quote di
utilizzo illimitati
E’ possibile creare altri ruoli con il comando
CREATE ROLE dw_manager;
(Come l’utente il ruolo può essere identificato da una
Password o NOT IDENTIFIED)
I privilegi o i ruoli possono essere concessi con il comando GRANT
grant CONNECT to PINCO with admin option
La clausola opzionale ‘with admin option’ indica che PINCO potrà concedere lo stesso
ruolo ad altri utenti o ruoli.
CONCEDERE PRIVILEGI O RUOLI
E’ possibile in modo simile assegnare privilegi o ruoli a utenti o ruoli:
Concedere un ruolo a un utente
GRANT dw_manager TO sh WITH ADMIN OPTION;
Concedere privilegi di sistema a un ruolo
GRANT
CREATE ANY MATERIALIZED VIEW
, ALTER ANY MATERIALIZED VIEW
, DROP ANY MATERIALIZED VIEW
TO dw_manager
WITH ADMIN OPTION;
Concedere privilegi su un oggetto ad un ruolo
GRANT SELECT ON sh.sales TO warehouse_user;
Concedere un ruolo ad un ruolo
GRANT dw_manager TO warehouse_user;
Concedere tutti i privilegi su una tabella a un utentes
GRANT ALL ON bonuses TO hr WITH GRANT OPTION;
Avendo indicato ‘with grant option’ l’utente hr potrà a sua volta tutti
i privilegi su quella tabella a un altro
Concedere alcuni privilegi su una vita a tutti
GRANT SELECT, UPDATE ON emp_view TO PUBLIC;
REVOCARE PRIVILEGI E RUOLI
Revoca di un privilegio di sistema a due utenti
REVOKE DROP ANY TABLE FROM hr, oe;
Revoca di un ruolo a un utente
REVOKE dw_manager FROM sh;
Revoca di due privilegi su una vista all’utente pubblico
REVOKE SELECT, UPDATE ON emp_details_view TO public;
ALCUNI TIPI DI PRIVILEGI
• Su tabelle, viste materializzate (ALL)
– INSER, DELETE, UPDATE, SELECT
– ALTER, REFERENCES, INDEX
• Su procedure, funzioni, package, tipi di dati,…
– EXECUTE
• Su sequenze
– SELECT, ALTER
• Su directory
– READ, WRITE
CREATE USER RIVISITATA
La create user può essere un comando molto complesso è possibile indicare:
• Un profilo
• Un tablespace di default e ta temporary tablespaces
• Password expire
• La quota di spazio
CREATE USER sidney
IDENTIFIED BY out_standing1
DEFAULT TABLESPACE example
QUOTA 10M ON example
TEMPORARY TABLESPACE temp
QUOTA 5M ON system
PROFILE app_user
PASSWORD EXPIRE;
ALTER USER E RUOLI PREDEFINITI
Nel comando ALTER USER è possibile definire uno o più ruoli standard per l’utente
ALTER USER sh
DEFAULT ROLE ALL EXCEPT dw_manager;
ALTER USER sh
DEFAULT ROLE ruolo1, ruolo2;
Normalmente ha tutti i ruoli sono predefiniti per un utente.
Per attivare un ruolo non predefinito è possibile scrivere
SET ROLE impiegato
SET ROLE ALL;
SET ROLE ALL EXCEPT dw_manager;
SET ROLE NONE;

More Related Content

More from Sergio Ronchi (20)

Java lezione 18
Java lezione 18Java lezione 18
Java lezione 18
 
Java lezione 17
Java lezione 17Java lezione 17
Java lezione 17
 
Java lezione 16
Java lezione 16Java lezione 16
Java lezione 16
 
Java lezione 15
Java lezione 15Java lezione 15
Java lezione 15
 
Java lezione 14
Java lezione 14Java lezione 14
Java lezione 14
 
Java lezione 13
Java lezione 13Java lezione 13
Java lezione 13
 
Java lezione 12
Java lezione 12Java lezione 12
Java lezione 12
 
Java lezione 11
Java lezione 11Java lezione 11
Java lezione 11
 
Java lezione 10
Java lezione 10Java lezione 10
Java lezione 10
 
Java lezione 9
Java lezione 9Java lezione 9
Java lezione 9
 
Java lezione 8
Java lezione 8Java lezione 8
Java lezione 8
 
Java lezione 7
Java lezione 7Java lezione 7
Java lezione 7
 
Java lezione 6
Java lezione 6Java lezione 6
Java lezione 6
 
Java lezione 5
Java lezione 5Java lezione 5
Java lezione 5
 
Java lezione 4
Java lezione 4Java lezione 4
Java lezione 4
 
Java lezione 3
Java lezione 3Java lezione 3
Java lezione 3
 
Java lezione 2
Java lezione 2Java lezione 2
Java lezione 2
 
Java introduzione
Java introduzioneJava introduzione
Java introduzione
 
Java Lezione 1
Java Lezione 1Java Lezione 1
Java Lezione 1
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 

Sql 5

  • 2. Utenti – Ruoli - Privilegi Ogni utente ha un nome e una password e possiede oggetti personali in Oracle. Un ruolo è costituito da una serie di privilegi. Ogni utente può avere un ruolo o dei privilegi specifici. Sono privilegi di sistema consentono di eseguire gruppi specifici di comandi: CREATE TABLE consente di creare delle tabelle. I privilegi su oggetti del database offrono privilegi su alcuni oggetti specifici
  • 3. Utenti In Oracle esistono molti utenti predefiniti tra cui SYS e SYSTEM. Per creare altri utenti è possibile collegarsi come SYSTEM. Per creare un utente si usa la sintassi CREATE USER pippo IDENTIFIED BY pluto (Usando IDENTIFIED EXTERNALLY si usano le impostazioni del sistema operativo) Per modificare un’utente si usa un comando ALTER ALTER USER pippo IDENTIFIED BY paperino (per altro esiste anche il comando password di SQLPLUS) Per eliminate un utente si usa il comando DROP USER pippo [CASCADE] CASCADE permette di eliminare tutti gli oggetti posseduti dall’utente In realtà pippo non può collegarsi finché non ha il privilegio di creare una sessione GRANT CREATE SESSION TO pippo
  • 4. Profili Inoltre l’amministratore può definire un profilo per l’utente stabilendo la durata della password, il numero di tentativi prima del blocco. create profile LIMITED PROFILE limit FAILED LOGON ATTEMPTS 5; create user PINCO identified by PALLINO profile LIMITED PROFILE Dopo 5 tentativi l’utente si blocca, per sbloccarlo alter user PINCO account unlock; Oppure per bloccarlo alter use PINCO account lock
  • 5. Scadenza della Password Per impostare una password che scade dopo 30 giorni alter profile LIMITED_PROFILE limit PASSWORD_LIFE_TIME 30 Dopo tale periodo viene richiesta una nuova password, al prossimo collegamento. Per altro è possibile forzare la scedenza di una passord con: alter user PINCO password expire O anche indicare password expire subito all’atto della creazione dell’utente Le informazioni sugli utenti sono presenti nel data dictionary nelle viste: DBA_USERS o USER_USERS
  • 6. RUOLI STANDARD • CONNECT è un ruolo che dà la possibilità di connettersi e creare alcuni oggetti nel proprio schema (tabelle, viste, sequenze, sinonimi, cluster). • RESOURCE è un ruolo per utenti più esigenti che necessitano anche la creazione di Stored procedure, triggers, tipi di dati eccetera. • DBA ha tutti i privilegi di sistema, tra cui quello di concedere privilegi, e quote di utilizzo illimitati E’ possibile creare altri ruoli con il comando CREATE ROLE dw_manager; (Come l’utente il ruolo può essere identificato da una Password o NOT IDENTIFIED) I privilegi o i ruoli possono essere concessi con il comando GRANT grant CONNECT to PINCO with admin option La clausola opzionale ‘with admin option’ indica che PINCO potrà concedere lo stesso ruolo ad altri utenti o ruoli.
  • 7. CONCEDERE PRIVILEGI O RUOLI E’ possibile in modo simile assegnare privilegi o ruoli a utenti o ruoli: Concedere un ruolo a un utente GRANT dw_manager TO sh WITH ADMIN OPTION; Concedere privilegi di sistema a un ruolo GRANT CREATE ANY MATERIALIZED VIEW , ALTER ANY MATERIALIZED VIEW , DROP ANY MATERIALIZED VIEW TO dw_manager WITH ADMIN OPTION; Concedere privilegi su un oggetto ad un ruolo GRANT SELECT ON sh.sales TO warehouse_user; Concedere un ruolo ad un ruolo GRANT dw_manager TO warehouse_user; Concedere tutti i privilegi su una tabella a un utentes GRANT ALL ON bonuses TO hr WITH GRANT OPTION; Avendo indicato ‘with grant option’ l’utente hr potrà a sua volta tutti i privilegi su quella tabella a un altro Concedere alcuni privilegi su una vita a tutti GRANT SELECT, UPDATE ON emp_view TO PUBLIC;
  • 8. REVOCARE PRIVILEGI E RUOLI Revoca di un privilegio di sistema a due utenti REVOKE DROP ANY TABLE FROM hr, oe; Revoca di un ruolo a un utente REVOKE dw_manager FROM sh; Revoca di due privilegi su una vista all’utente pubblico REVOKE SELECT, UPDATE ON emp_details_view TO public;
  • 9. ALCUNI TIPI DI PRIVILEGI • Su tabelle, viste materializzate (ALL) – INSER, DELETE, UPDATE, SELECT – ALTER, REFERENCES, INDEX • Su procedure, funzioni, package, tipi di dati,… – EXECUTE • Su sequenze – SELECT, ALTER • Su directory – READ, WRITE
  • 10. CREATE USER RIVISITATA La create user può essere un comando molto complesso è possibile indicare: • Un profilo • Un tablespace di default e ta temporary tablespaces • Password expire • La quota di spazio CREATE USER sidney IDENTIFIED BY out_standing1 DEFAULT TABLESPACE example QUOTA 10M ON example TEMPORARY TABLESPACE temp QUOTA 5M ON system PROFILE app_user PASSWORD EXPIRE;
  • 11. ALTER USER E RUOLI PREDEFINITI Nel comando ALTER USER è possibile definire uno o più ruoli standard per l’utente ALTER USER sh DEFAULT ROLE ALL EXCEPT dw_manager; ALTER USER sh DEFAULT ROLE ruolo1, ruolo2; Normalmente ha tutti i ruoli sono predefiniti per un utente. Per attivare un ruolo non predefinito è possibile scrivere SET ROLE impiegato SET ROLE ALL; SET ROLE ALL EXCEPT dw_manager; SET ROLE NONE;