Il linguaggio SQL: autorizzazioni

Documenti analoghi
Istruzioni DCL di SQL. Pag. 119 par.5

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Manuale SQL. Manuale SQL - 1 -

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

Soluzione esercitazione 01

OBIETTIVI DELL'ESERCITAZIONE

Interrogazioni nidificate

ESERCITAZIONE: Fornitore-Fornisce-Articolo

PROGETTAZIONE DI DATABASE Linguaggio SQL

Elena Baralis 2007 Politecnico di Torino 1

Interrogazioni nidificate

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

SQL - Structured Query Language

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1

SQL: DDL, VI, Aggiornamenti e Viste

LABORATORIO di INFORMATICA

Il sistema IBM DB2. Sistemi Informativi T. Versione elettronica: L01.1.IntroduzioneDB2.pdf

Laboratorio di Basi di Dati Esercizio 8.4/9.1

SQL: Definizione e Manipolazione di Relazioni. Capitolo 2

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Caratteristiche dei linguaggi per Database

Esercitazione 4 SQL: cataloghi e viste

Basi di dati. Linguaggio SQL: fondamenti - Introduzione. Elena Baralis 2007 Politecnico di Torino 1 D B M G 2 D B M G D B M G 4 D B M G 6

SQL Sintassi Dei Comandi

Dichiarazione degli schemi in SQL DDL 1

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

SQL PER LA DEFINIZIONE DI BASI DI DATI

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))

Triggers. Antonella Poggi, Claudio Corona. Dipartimento di informatica e Sistemistica Università di Roma La Sapienza

DBMS: MySQL CORSO DI BASI DI DATI 2014/2015

Esercitazione 1 SQL: DDL e DML di base

DBMS. DataBase Management System. L. Vigliano

ESERCITAZIONI ACCESS

DB2 Universal Database (UDB) DB2 Universal Database (UDB)

Esempio di database relazionale con l utilizzo del prodotto MySQL

Basi di Dati CREAZIONE E POPOLAMENTO DI UNA BASE DI DATI

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Utilizzo delle Maschere in Microsoft Access

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

SOLUZIONE ESAME DI STATO 2014/2015 INFORMATICA. Giselda De Vita 2015

SQL. Storia e standard

Definizione di domini

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

1. Schema concettuale della base di dati PROGETTO CONCETTUALE SCHEMA ER

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

MANUALE ESSENZIALE MYSQL

Basi di Dati: Corso di laboratorio

Basi di Dati. S Q L Lezione 5


SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia:

Prova del 14/09/09. Considerare la seguente descrizione di un campeggio:

Basi di dati I Prova di autovalutazione 30 ottobre 2014

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia

Laboratorio Architettura

Basi di dati. SQL: Caratteristiche evolute

ESERCIZI SQL. Esercizio 1

Università degli Studi de L Aquila A. A Prof. Giuseppe Della Penna. Software House GRUPPO 19 CANALE A. A cura di:

DBMS. DataBase Management System. L. Vigliano

Fondamenti di Informatica 2

Spiegazioni esercizio Gestione Tabella con PHP e MySQL

Basi di Dati. Concetti e Principi Generali. Maria Mirto

MY SQL Guida MySQL di base

Basi di dati (3) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. Argomento: DML (1.

DUE GRUPPI DI COMANDI

σ data 15/12/2013 data 20/12/2014

SQL Manuale introduttivo

SQL (STRUCTURED QUERY LANGUAGE)

Transcript:

Il linguaggio SQL: autorizzazioni Sistemi Informativi T Versione elettronica: 04.6.SQL.autorizzazioni.pdf

Autorità e privilegi Nei DBMS SQL ogni operazione deve essere autorizzata, ovvero l utente che esegue l operazione deve avere i privilegi necessari. I privilegi vengono concessi e revocati per mezzo delle istruzioni GRANT e REVOKE Un principio fondamentale èche un utente che ha ricevuto un certo privilegio può a sua volta accordarlo ad altri utenti solo se è stato esplicitamente autorizzato a farlo Mediante GRANT e REVOKE si controllano anche le autorità, ovvero il diritto ad eseguire azioni amministrative di un certo tipo Ad esempio, se si ha l autorità SYSADM (che include anche quella di DBADM) è possibile passare ad altri utenti l autorità DBADM (Database Administrator Authority): GRANT DBADM ON DATABASE TO Pippo WITH GRANT OPTION; in cui la clausola WITH GRANT OPTION autorizza l utente Pippo a passare l autorità ad altri utenti SQL: autorizzazioni Sistemi Informativi T 2

GRANT: privilegi per SCHEMI Il formato dell istruzione GRANT per assegnare privilegi su schemi è: GRANT < lista di privilegi > ON SCHEMA <schema name> TO { <lista di utenti e gruppi> PUBLIC } [ WITH GRANT OPTION ] I privilegi possibili sono CREATEIN: per creare oggetti (tables,views) nello schema ALTERIN: per modificare la struttura di tables dello schema DROPIN: per eliminare oggetti dallo schema GRANT CREATEIN, ALTERIN ON SCHEMA B16884 TO USER S00125, S00126 SQL: autorizzazioni Sistemi Informativi T 3

GRANT: privilegi per TABLES e VIEWS Il formato per assegnare privilegi su tables e views è: GRANT { ALL < lista di privilegi > } ON [ TABLE ] <table name> TO { <lista di utenti e gruppi> PUBLIC } [ WITH GRANT OPTION ] I privilegi possibili includono quello master di CONTROL (posseduto automaticamente da chi ha creato l oggetto) e quelli di ALTER, DELETE, INSERT, SELECT, INDEX, REFERENCES e UPDATE Per REFERENCES e UPDATE si può anche specificare una lista di attributi ALL conferisce tutti i privilegi che chi conferisce il privilegio può passare ad altri, ma in ogni caso non CONTROL PUBLIC concede i privilegi specificati a tutti gli utenti, inclusi quelli futuri SQL: autorizzazioni Sistemi Informativi T 4

GRANT: dettagli sui privilegi CONTROL: comprende tutti i privilegi (su una view sono solo SELECT, INSERT, DELETE e UPDATE). Inoltre permette di conferire tali privilegi ad altri utenti; può essere conferito solo da qualcuno che ha autorità SYSADM o DBADM ALTER: attribuisce il diritto di modificare la definizione di una tabella DELETE: attribuisce il diritto di cancellare righe di una tabella INDEX: attribuisce il diritto di creare un indice sulla tabella INSERT: attribuisce il diritto di inserire righe nella tabella REFERENCES: attribuisce il diritto di definire foreign keys in altre tabelle che referenziano la tabella SELECT: attribuisce il diritto di eseguire query sulla tabella/vista e di definire VIEW UPDATE: attribuisce il diritto di modificare righe della tabella/vista Per eseguire una query, è necessario avere il privilegio di SELECT o di CONTROL su tutte le table e le view referenziate dalla query SQL: autorizzazioni Sistemi Informativi T 5

GRANT: privilegio REFERENCES L unico privilegio che non agisce direttamente sulla tabella in oggetto è REFERENCES Il motivo per cui tale privilegio va concesso esplicitamente èlegato alle politiche di reazione associabili a una foreign key Ad es., la definizione: CREATE TABLE Esami ( Matricola char(5) NOT NULL, CodCorso int NOT NULL,... FOREIGN KEY CodCorso REFERENCES Corsi ON DELETE NO ACTION -- cancellazioni non permesse di fatto permetterebbe all utente che crea la relazione ESAMI di bloccare ogni cancellazione sulla relazione CORSI SQL: autorizzazioni Sistemi Informativi T 6

GRANT: esempi (1) Paperino autorizza Pippo e Topolino a leggere la relazione Employee e a modificare i valori di Salary; inoltre concede loro di passare questo privilegio ad altri utenti: Paperino> GRANT SELECT, UPDATE(Salary) ON TABLE Employee TO USER Pippo, USER Topolino WITH GRANT OPTION e Pippo ne approfitta subito: Pippo> GRANT SELECT ON TABLE Employee TO USER Pluto Pluto può eseguire query su Employee, ma non aggiornamenti; inoltre non può passare lo stesso privilegio ad altri SQL: autorizzazioni Sistemi Informativi T 7

GRANT: esempi (2) Se ora Topolino esegue: Topolino> GRANT UPDATE(Salary) ON TABLE Employee TO USER Pluto WITH GRANT OPTION allora Pluto può anche modificare i valori di Salary e passare lo stesso privilegio ad altri Quindi: Pluto> GRANT ALL ON TABLE Employee TO USER Minnie trasferisce a Minnie (ma senza GRANT OPTION) il solo privilegio sulla modifica dei valori di Salary SQL: autorizzazioni Sistemi Informativi T 8

GRANT: esempi (3) Pippo crea una vista su Employee: Pippo> CREATE VIEW NomiEmp(NOME,COGNOME) AS SELECT LASTNAME,FIRSTNME FROM EMPLOYEE e permette a Orazio di fare query su tale vista: Pippo> GRANT SELECT ON TABLE NomiEmp TO USER Orazio Quindi ora Orazio può interrogare NomiEmp, ma non Employee! SQL: autorizzazioni Sistemi Informativi T 9

REVOKE Il formato dell istruzione REVOKE per revocare privilegi su tables e views è: REVOKE { ALL < lista di privilegi > } ON [ TABLE ] <table name> FROM { <lista di utenti e gruppi> PUBLIC } A differenza del GRANT, per eseguire REVOKE bisogna avere l autorità SYSADM o DBADM, oppure il privilegio di CONTROL sulla relazione Il REVOKE non agisce a livello di singoli attributi; pertanto non si possono revocare privilegi di UPDATE solo su un attributo e non su altri (per far ciò è quindi necessario revocarli tutti e poi riassegnare solo quelli che si vogliono mantenere) SQL: autorizzazioni Sistemi Informativi T 10

REVOKE: esempi Se Pippo, che non ha autorità DBADM o SYSADM, né CONTROL su Employee, prova ad eseguire: Pippo> si verifica un errore REVOKE SELECT ON TABLE Employee FROM Pluto Viceversa, se Paperino ha autorità DBADM ed esegue Paperino> REVOKE SELECT ON TABLE Employee FROM Pippo, Topolino né Pippo né Topolino possono più eseguire query su Employee, ma continuano a poter aggiornare Salary La vista NomiEmp definita da Pippo su Employee diventa inoperativa, ovvero non più utilizzabile (e quindi Orazio non può più interrogarla) Si noti che Pluto mantiene il privilegio SELECT su Employee Lo standard SQL prevede una gestione del REVOKE più complessa, che include anche effetti di revoca dei privilegi in cascata (in cui quindi Pluto perderebbe il privilegio di SELECT) SQL: autorizzazioni Sistemi Informativi T 11

Riassumiamo: Mediante le istruzioni GRANT e REVOKE è possibile, rispettivamente, concedere e revocare privilegi e autorità E inoltre possibile, se se ne ha il diritto, concedere il diritto di propagare tali privilegi/autorità, specificando la clausola WITH GRANT OPTION SQL: autorizzazioni Sistemi Informativi T 12