Cours 4 : Tables système, contrôle des accès et synonymes
Tables système Les informations du dictionnaire de données (tables système) sont accessibles en consultation seule, au moyen de vues Quatre classes de vues sont disponibles en fonction du privilège de l utilisateur : La classe DBA La classe USER La classe ALL Les vues spécifiques 2013-2014 Bases de données 2 2
Classe DBA Les noms de ces vues sont préfixés par DBA_, V$ ou V_$ Elle ne sont accessibles qu aux utilisateurs qui ont le privilège SELECT_ANY_TABLE Les vues préfixées par V$ ou V_$ contiennent des informations sur les activités de la base et permettent un suivi de performance (vues dynamiques) 2013-2014 Bases de données 2 3
Classe USER Les noms de ces vues sont préfixées par USER_ Elles permettent un contrôle de tous les objets dont l utilisateur est propriétaire 2013-2014 Bases de données 2 4
Classe ALL Les noms de ces vues sont préfixées par ALL_ Elles donnent une vision plus large que la précédente en permettant à l utilisateur un contrôle de tous les objets qui lui sont accessibles 2013-2014 Bases de données 2 5
Vue spécifiques DICTIONARY ou DICT : la liste de toutes les tables, vues et synonymes constituant le dictionnaire de données d Oracle DICT_COLUMNS : description des tables et des vues du dictionnaire de données TABLE_PRIVILEGES : les privilèges accordés aux utilisateurs sur les objets de la base COLUMN_PRIVILEGES : les privilèges accordés aux utilisateurs sur les colonnes des tables CONSTRAINT_COLUMNS et CONSTRAINT_DEFS : les contraintes d intégrité définies sur les colonnes des tables 2013-2014 Bases de données 2 6
DBA ALL USER DBA_CATALOG ALL_IND_COLUMNS USER_COL_PRIVS DBA_USERS ALL_LABELS USER_CONSTRAINTS DBA_SNAPSHOTS ALL_ROWS USER_ERRORS ALL_SNAPSHOTS USER_IND_COLUMNS ALL_SOURCE USER_INDEXES (IND) ALL_SYNONYMS USER_OBJECTS (OBJ) ALL_TABLES USER_REFS ALL_TRIGGERS USER_SEQUENCES (SEQ) ALL_USERS USER_TAB_COLUMNS (TABS) ALL_VIEWS USER_TABLES USER_TAB_PRIVS USER_TRIGGER_COLS USER_TRIGGERS USER_VIEWS USER_SYNONYMS (SYN) 2013-2014 Bases de données 2 7
Contrôle des accès Sélectionner et répartir les droits des utilisateurs de la base de données : Gestion des accès à la base de données Gestion des accès aux données de la base Limitation des ressources accessibles Attribution des droits par défaut 2013-2014 Bases de données 2 8
Utilisateurs (USER) Tout objet a un utilisateur créateur qui possède tous les droits (consultation, modification et suppression) sur cet objet Les autres utilisateurs n ont aucun droit sur cet objet, à moins que le créateur ne le leur accorde explicitement 2013-2014 Bases de données 2 9
Un utilisateur est défini par : Un nom d utilisateur Un mot de passe Un ensemble de privilèges Un profil 2013-2014 Bases de données 2 10
Privilèges Droits attribués à un utilisateur d exécuter un ensemble donné d ordres SQL ou d accéder à certains objets de la base de données Un privilège peut être attribué soit directement à un utilisateur, soit à un rôle Deux niveaux de privilèges : Les privilèges système (environ 80 pour Oracle 8) Les privilèges objet 2013-2014 Bases de données 2 11
Rôles Regroupements de privilèges qui peuvent être attribué soit à un utilisateur soit à un autre rôle Un rôle peut contenir à la fois les deux types de privilèges Chaque rôle a un nom de rôle 2013-2014 Bases de données 2 12
Rôles prédéfinis sous Oracle CONNECT RESOURCE DBA EXP_FULL_DATABASE IMP_FULL_DATABASE 2013-2014 Bases de données 2 13
Gestion des rôles CREATE ROLE nom-rôle... ALTER ROLE nom-rôle... DROP ROLE nom-rôle... SET ROLE nom-rôle ALL NONE; 2013-2014 Bases de données 2 14
Profils Cette notion permet de contrôler l activité des utilisateurs en limitant les ressources auxquelles ils ont accès : Le temps CPU Le nombre maximal de blocs lus Le nombre de session par utilisateur La durée d une connexion La durée sans occupation autorisée Le nombre maximal d octets d espace privé 2013-2014 Bases de données 2 15
Gestion des profils CREATE PROFILE nom-de-profil LIMIT... ALTER PROFILE nom-de-profil... DROP PROFILE nom-de-profil [CASCADE] Table système : DBA_PROFILES 2013-2014 Bases de données 2 16
Gestion des utilisateurs CREATE USER nom-utilisateur IDENTIFIED (BY mot-de-passe EXTERNALLY)... ALTER USER nom-utilisateur IDENTIFIED (BY mot-de-passe EXTERNALLY)... DROP USER nom-utilisateur [CASCADE]; Table système : DBA_USERS 2013-2014 Bases de données 2 17
Attribution d un privilège système GRANT privilège-ou-rôle,... PUBLIC TO rôle,... nom-utilisateur [WITH ADMIN OPTION]; WITH ADMIN OPTION autorise celui qui a reçu le privilège ou le rôle à le transmettre à un autre utilisateur 2013-2014 Bases de données 2 18
Quelques privilèges système ALTER ANY INDEX ALTER ANY PROCEDURE ALTER ANY ROLE ALTER ANY SEQUENCE ALTER ANY TABLE ALTER ANY TRIGGER ALTER ANY PROFILE ALTER USER CREATE ANY TABLE CREATE ANY INDEX CREATE ANY PROCEDURE CREATE ANY SEQUENCE CREATE ANY SYNONYM CREATE ANY TRIGGER CREATE ANY VIEW CREATE PROCEDURE CREATE PROFILE CREATE ROLE CREATE PUBLIC SYNONYM CREATE SEQUENCE CREATE SESSION CREATE SYNONYM CREATE TABLE CREATE TRIGGER CREATE USER CREATE VIEW DELETE ANY TABLE DROP ANY INDEX DROP ANY PROCEDURE DROP ANY ROLE DROP ANY SEQUENCE DROP ANY SYNONYM DROP ANY TABLE DROP ANY TRIGGER DROP ANY VIEW DROP PROFILE DROP PUBLIC SYNONYM DROP USER GRANT ANY ROLE EXECUTE ANY PROCEDURE GRANT ANY PRIVILEGE INSERT ANY TABLE LOCK ANY TABLE SELECT ANY SEQUENCE SELECT ANY TABLE UPDATE ANY TABLE 2013-2014 Bases de données 2 19
Suppression d un privilège système REVOKE privilège-ou-rôle,... PUBLIC FROM rôle,... nom-utilisateur 2013-2014 Bases de données 2 20
Attribution d un privilège objet GRANT privilège-objet,... ON objet PUBLIC TO rôle,... nom-utilisateur [WITH GRANT OPTION]; WITH GRANT OPTION autorise celui qui a reçu le privilège à le transmettre à un autre utilisateur 2013-2014 Bases de données 2 21
Quelques privilèges objet SELECT [(attribut,... )] INSERT UPDATE [(attribut,... )] DELETE EXECUTE ALTER INDEX REFERENCES [(attribut,... )] READ ALL 2013-2014 Bases de données 2 22
Relations entre privilèges et objets Privilège Table Vue Séquence Procédure, Fonction, Package ALTER DELETE EXECUTE INDEX INSERT REFERENCES SELECT READ UPDATE 2013-2014 Bases de données 2 23
Suppression d un privilège objet REVOKE [privilège-objet,... ALL] ON objet PUBLIC FROM rôle,... nom-utilisateur [CASCADE CONSTRAINTS] [FORCE]; CASCADE CONSTRAINT : pour le privilège REFERENCES FORCE : pour le privilège EXECUTE 2013-2014 Bases de données 2 24
Dictionnaire des données ALL_COL_PRIVS ALL_COL_PRIVS_MADE ALL_COL_PRIVS_RECD ALL_TAB_PRIVS_MADE ALL_TAB_PRIVS_RECD DBA_COL_PRIVS DBA_ROLES DBA_ROLE_PRIVS... 2013-2014 Bases de données 2 25
Synonymes Pour créer un synonyme privé sur un objet dont on est le propriétaire, il faut avoir le privilège CREATE_SYNONYM Pour créer un synonyme privé sur un objet dont on n est pas le propriétaire, il faut avoir le privilège CREATE ANY SYNONYM Pour créer un synonyme public, il faut avoir le privilège CREATE PUBLIC SYNONYM On ne peut spécifier un schéma que pour un synonyme public 2013-2014 Bases de données 2 26
Syntaxe CREATE [PUBLIC] SYNONYM nom-synonyme FOR [schèma.]objet; 2013-2014 Bases de données 2 27
Exemple CREATE PUBLIC SYNONYM film FOR ens2004.film; 2013-2014 Bases de données 2 28