Sql 5

11
Oracle Sicurezza

Transcript of Sql 5

Page 1: Sql 5

Oracle

Sicurezza

Page 2: Sql 5

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

Page 3: Sql 5

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

Page 4: Sql 5

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

Page 5: Sql 5

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

Page 6: Sql 5

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.

Page 7: Sql 5

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;

Page 8: Sql 5

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;

Page 9: Sql 5

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

Page 10: Sql 5

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;

Page 11: Sql 5

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;