Sql 5
-
Upload
sergio-ronchi -
Category
Software
-
view
56 -
download
0
Transcript of Sql 5
Oracle
Sicurezza
Utenti – Ruoli - PrivilegiOgni 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
UtentiIn 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 ALTERALTER USER pippo IDENTIFIED BY paperino
(per altro esiste anche il comando password di SQLPLUS)
Per eliminate un utente si usa il comandoDROP 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 sessioneGRANT CREATE SESSION TO pippo
ProfiliInoltre 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 limitFAILED LOGON ATTEMPTS 5;
create user PINCO identified by PALLINOprofile LIMITED PROFILE
Dopo 5 tentativi l’utente si blocca, per sbloccarloalter user PINCO account unlock;
Oppure per bloccarloalter use PINCO account lock
Scadenza della PasswordPer impostare una password che scade dopo 30 giorni
alter profile LIMITED_PROFILE limitPASSWORD_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 comandoCREATE 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 GRANTgrant 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 RUOLIE’ 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
GRANTCREATE ANY MATERIALIZED VIEW, ALTER ANY MATERIALIZED VIEW, DROP ANY MATERIALIZED VIEWTO dw_managerWITH ADMIN OPTION;
Concedere privilegi su un oggetto ad un ruoloGRANT SELECT ON sh.sales TO warehouse_user;
Concedere un ruolo ad un ruoloGRANT dw_manager TO warehouse_user;
Concedere tutti i privilegi su una tabella a un utentesGRANT 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 tuttiGRANT SELECT, UPDATE ON emp_view TO PUBLIC;
REVOCARE PRIVILEGI E RUOLIRevoca di un privilegio di sistema a due utenti
REVOKE DROP ANY TABLE FROM hr, oe;
Revoca di un ruolo a un utenteREVOKE dw_manager FROM sh;
Revoca di due privilegi su una vista all’utente pubblicoREVOKE 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 RIVISITATALa 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 sidneyIDENTIFIED BY out_standing1DEFAULT TABLESPACE exampleQUOTA 10M ON exampleTEMPORARY TABLESPACE tempQUOTA 5M ON systemPROFILE app_userPASSWORD EXPIRE;
ALTER USER E RUOLI PREDEFINITINel comando ALTER USER è possibile definire uno o più ruoli standard per l’utenteALTER USER shDEFAULT ROLE ALL EXCEPT dw_manager;
ALTER USER shDEFAULT ROLE ruolo1, ruolo2;
Normalmente ha tutti i ruoli sono predefiniti per un utente.
Per attivare un ruolo non predefinito è possibile scrivereSET ROLE impiegatoSET ROLE ALL;SET ROLE ALL EXCEPT dw_manager;SET ROLE NONE;