Le langage SQL : Le Langage de Contrôle des Données (LCD)



Documents pareils
Gestion des utilisateurs et de leurs droits

Olivier Mondet

CHAPITRE 4 POLITIQUES DE CONTRÔLES DES ACCÈS SOUS ORACLE ADMINISTRATION ET TUNING DE BASES DE DONNÉES 10/05/2015 RESPONSABLE DR K.

Bases de données et sites WEB

Le langage SQL (première partie) c Olivier Caron

420-PK6-SL Banques de données Avancées. UTILISATEURS (suite)

Partie II Cours 3 (suite) : Sécurité de bases de données

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Installation et Mise en œuvre de MySQL

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Partie 0 : Gestion des tablespace et des utilisateurs... 3

TP Administration Oracle

Bases de Données relationnelles et leurs systèmes de Gestion

Auto-évaluation Oracle: cours de base

Architecture de la plateforme SBC

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

TP Contraintes - Triggers

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Gestion des utilisateurs, des groupes et des rôles dans SQL Server 2008

Installation d'un serveur FTP géré par une base de données MySQL

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Synchronisation Mysql (Replication)

Les déclencheurs. Version 1.0. Grégory CASANOVA

Création d'une nouvelle base de données

Pour les débutants. langage de définition des données

Administration des bases de données. Jean-Yves Antoine

Sommaire. Etablir une connexion avec une base de données distante sur PostGreSQL

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Le Langage SQL version Oracle

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

EJBCA PKI Open Source

Pratique et administration des systèmes

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Créer et partager des fichiers

CATALOGUE FORMATIONS DOMAINE Bases de données

CHAPITRE 1 ARCHITECTURE

Bases de SQL. Hacks 1-6 CHAPITRE UN

PHP 4 PARTIE : BASE DE DONNEES

TUTORIEL D INSTALLATION D ORACLE ET DE SQL DEVELOPPER TUTORIEL D INSTALLATION D ORACLE...1 ET DE SQL DEVELOPPER...1

INSIA Bases de données ORACLE Installation SQL*Plus SQL-Developer

SQL Historique

Bases de données relationnelles

I. MySQL : Serveur et SGBD

Notes de cours : bases de données distribuées et repliquées

Introduction aux SGBDR

HowTo Installer egroupware 1.2 sur SME Serveur 7.0

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

420-PK6-SL Banques de données Avancées UTILISATEURS

Guide d installation de MySQL

Documentation pour administrateur Application AER

MODE OPERATOIRE CORIM PROGRESS / SECTION MEI. Exploitation Informatique

Procédure serveur : gestion des environnements X3 et bases de données ORACLE

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Guide d installation de SugarCRM Open Source version 4.5.1

Bases de données et sites WEB Licence d informatique LI345

Modélisation et Gestion des bases de données avec mysql workbench

Cours Bases de données 2ème année IUT

WDpStats Procédure d installation

Corrigé de l'atelier pratique du module 5 : Analyse de SQL Server

MySQL - Réplication. Fichiers de relais et de statut de la réplication. Mise en place de la réplication

Le Langage De Description De Données(LDD)

Information utiles. webpage : Google+ : digiusto/

Cours: Administration d'une Base de Données

Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision

Création et Gestion des tables

Cours Bases de données 2ème année IUT

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Setting Up PC MACLAN File Server

PHP. PHP et bases de données

Secteur Tertiaire Informatique Filière étude - développement. Accueil. Apprentissage. Période en entreprise. Evaluation.

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Configurer la supervision pour une base MS SQL Server Viadéis Services

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

SQL Server Installation Center et SQL Server Management Studio

Cyberclasse L'interface web pas à pas

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

et Groupe Eyrolles, 2006, ISBN :

TP11 - Administration/Tuning

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Maintenance et gestion approfondie des Systèmes d exploitation Master 2 SILI. Année universitaire David Genest

INSTALLATION ET CONFIGURATION DE OPENLDAP

et Groupe Eyrolles, 2006, ISBN :

Guide d installation de Gael

Du 10 Fév. au 14 Mars 2014

Présentation du module Base de données spatio-temporelles

PPE GESTION PARC INFORMATIQUE

Encryptions, compression et partitionnement des données

Java DataBaseConnectivity

Transcription:

T-GSI STAGE RENOVATION - SQL.Chapitre 5 - Le langage SQL : Le Langage de Contrôle des Données (LCD) Sources du document : Livre bible Oracle 9i, J. Gabillaud, Editions Eni ; Support Oracle ; Documentation pdf d Oracle «install nt 817» ; ISO Norme 2382:1999 parties 1 à 5, ISO Norme 9075 parties 1 à 14 corrigées en 2005. Sources du document : Site sql.developpez.com ; Manuel SQL PostgreSQL (existe en plusieurs versions HTML, PDF ). Olivier Mondet http://unidentified-one.net A. Gestion de session A.1. Avec SQL*Plus (Oracle) Pour se connecter on peut utiliser la boite de message qui apparaît à l ouverture de SQL*Plus : Ou bien lancer l instruction : CONNECT <utilisateur>@<nom_bdd> Par exemple : CONNECT scott@bddig Automatiquement Oracle demandera le mot de passe de l utilisateur. On pourrait simplement utiliser CONNECT sans préciser l utilisateur : Oracle demandera successivement le nom de l utilisateur et le mot de passe. Pour quitter la session : DISCONNECT Ch.5 - Le Langage SQL, LCD.doc page 1 / 14 om (2001-2005)

Pour sortir de SQL*Plus (après s être déconnecté) : EXIT Pour voir quel est l utilisateur actif : SHOW USER Voir la liste des tables privées de l utilisateur : SELECT * FROM CAT; Voir la liste des tables accessibles par l utilisateur : SELECT owner, table_name, FROM all_tables; Voir la liste des comptes : SELECT username from dba_users; Effacer l écran : CL SCR ou CL SCREEN Afficher la structure d une table : DESCRIBE <table>; Afficher les paramètres actifs : SHOW Par exemple : SHOW AUTOCOMMIT ou SHOW LINESIZE A.2. Avec MySQL Pour se connecter il faut ouvrir MySql en mode console (fenêtre dos sur le répertoire \mysql\bin). On utilise ensuite le programme mysql.exe qui lance l interface entre l utilisateur et le serveur de base de données mysqld. Pour se connecter : MYSQL -U <utilisateur> -P<mot_de_passe> Malheureusement cette instruction conduit à montrer son mot de passe, ce qui pourrait être gênant en cas de présence d yeux curieux. Il vaudrait mieux taper l instruction suivante : MYSQL -U<utilisateur> -P Cela lancera une demande du mot de passe par MySQL qui sera remplacé par des * lors de la saisie. NOTA : Il est possible d entrer sans mot de passe si l utilisateur n en a pas de défini (stratégie dangereuse) ou s il n a pas été encodé. Utiliser une base de données : USE <nom_base_de_données>; Ch.5 - Le Langage SQL, LCD.doc page 2 / 14 om (2001-2005)

Quitter la session : EXIT; A.3. Avec PostgreSQL Lors de l installation, un super utilisateur (DBA) nommé postgres est créé pour pouvoir accéder à la base de données. Sous Linux, cet utilisateur est le seul à pouvoir utiliser les commandes createdb dropdb (pour créer supprimer une base de données), createuser dropuser (pour créer supprimer un utilisateur de la base de données PostgreSQL), createlang droplang (pour ajouter supprimer un langage de programmation à PostgreSQL). L utilisateur postgres est le premier utilisateur de la base de données, l équivalent de root sous MySql. Sous Linux, un utilisateur UNIX ne peut se connecter à la base de données qu à partir du moment où un même utilisateur a été créé pour PostgreSQL. Postgres possède une gestion externe des accès et des utilisateurs autorisés. C est dans le fichier de configuration pg_hba.conf que ce mappage utilisateur UNIX / utilisateur PostgreSQL est paramétré ; ainsi que les modes d accès. Comme MySql, c est sous Linux que l utilisation de la base de données revêt tout son intérêt et son importance : gestion des utilisateurs adossée au système, sécurité du noyau Pour se connecter : psql [-d <base_de_données>] [-u <utilisateur_postgresql] Avant la première connexion il faut créer une base de données. Pour cela utiliser la commande externe createdb <nom_base>. Lorsqu un utilisateur se connecte, PostgreSQL cherche toujours à le connecter à une base de données portant son nom (un nom d utilisateur UNIX = Un nom d utilisateur PostgreSQL = Un nom de base de donnée par défaut). Il est cependant possible de connecter un utilisateur à une base de données particulière. Pour avoir la liste des bases de données saisir : psql -l Les paramètres de connexion (utilisateurs de la base de données, postes clients autorisés ) sont stockés dans les fichiers pg_hba.conf, pg_ident.conf (situés dans /var/lib/psql/data). Ces paramètres permettent d identifier les clients, les utilisateurs, de mapper les utilisateurs de la base de données par rapport aux utilisateurs système. Un fichier de configuration global postgresql.conf est situé au même endroit. Une fois connecté, les commandes de base sont données : Parmi les commandes internes on pourra retenir : \c <nombase> <nom_utilisateur> pour se connecter à une autre base. \w <nomfichier> sauvegarder le tampon de requête dans un fichier. \d <nomtable> décrire une table. \dg afficher la liste des groupes. \du afficher la liste des utilisateurs. \z afficher la liste des privilèges d accès aux tables. \! lancer la commande dans un shell ou lancer un shell interactif. \i <nomfichier> exécuter les commandes du fichier. \o <nomfichier> diriger le résultat des requêtes vers un fichier. Utiliser une base de données (autre que celle de l utilisateur) : psql -d <nom_base_de_données>; Ch.5 - Le Langage SQL, LCD.doc page 3 / 14 om (2001-2005)

Voir les tables «système» : Les tables système de PostgreSQL sont préfixées soit par «information_schema.» soit par «pg_catalog.». Par exemple, la table pg_catalogue.pg_users contient la liste des utilisateurs. Créer des utilisateurs : Vous avez le choix de le faire avec la commande createuser (-P pour ajouter un mot de passe) ou sous PostgreSQL avec la commande SQL : create user <nomutilisateur> password <motdepasse>. B. Administration élémentaire B.1. Notion d utilisateur de rôle et de privilège Chaque utilisateur d une base de données (comme Oracle ou PostgreSQL par exemple) dispose d un nom et d un mot de passe, et possède également des tables, des vues et d autres ressources qu il a créées. Dans Oracle, un rôle représente un ensemble de privilèges. Vous pouvez assigner des privilèges spécifiques à des rôles, puis assigner ces rôles aux utilisateurs appropriés. Un utilisateur peut aussi attribuer des privilèges à d autres utilisateurs s il a été accrédité pour. Deux types de privilèges : Privilège au niveau système : qui donne le droit d exécuter une action particulière sur n importe quel objet. Le privilège CREATE TABLE, par exemple, permet de créer des tables. Le privilège GRANT ANY PRIVILEGE permet d accorder des privilèges à d autres utilisateurs. Privilège au niveau objet : qui donne le droit d exécuter une action donnée sur un objet spécifique. Le privilège SELECT, par exemple, permet d exécuter une opération SELECT sur une table, une vue, une séquence (ou un snapshot sous Oracle). La norme SQL2 propose trois fonctions pour connaître l'utilisateur connecté : SYSTEM_USER (nom de l utilisateur connecté), SESSION_USER (nom d utilisateur qui a ouvert la session), CURRENT_USER (nom de l utilisateur courant). On utilise ces fonctions avec une commande SELECT. B.1.1. Créer un utilisateur CREATE USER <utilisateur> IDENTIFIED BY <mot_de_passe> EXTERNALLY Le paramètre EXTERNALLY permet de ne pas définir de mot de passe si le mot de passe du système d exploitation de l ordinateur vous suffit pour identifier l utilisateur. Stratégie dangereuse tout de même, car il vaut mieux avoir un autre filtre sur la base de donnée qui offre un second niveau de sécurité. On peut également fixer pour cet utilisateur un espace disque spécifique (TABLESPACE) et une limitation de son utilisation des ressources (QUOTAS). Exemple : Ici l utilisateur scott essaye de créer un autre utilisateur, mais il n a pas ce privilège : Ch.5 - Le Langage SQL, LCD.doc page 4 / 14 om (2001-2005)

Exemple : On se connecte en administrateur (system/manager) et on fait cette création : B.1.2. Modifier le mot de passe des utilisateurs ALTER USER <utilisateur> IDENTIFIED BY <nouveau_mot_de_passe> On peut gérer la «vie» des mots de passe grâce à la création de profils (CREATE PROFILE) qui permettent au DBA de fixer des conditions d accès : - durée de vie d un mot de passe ; - période de grâce qui suit l expiration d un mot de passe et pendant laquelle il peut être changé ; - nombre d échecs de connexion répétés autorisés avant de verrouiller le compte ; - durée (en jours) de verrouillage d un compte ; - nombre de jours qui doivent s écouler avant de pouvoir changer un mot de passe ; - nombre de changements de mot de passe qui doivent avoir lieu avant de réutiliser un mot de passe. B.1.3. Supprimer un utilisateur DROP USER <utilisateur> [CASCADE] Exemple : l utilisateur steve est supprimé de la base de données : B.2. Les rôles standards Les rôles ont été implémentés dans le langage SQL à partir de 1999. Seules les bases de données solides comme Oracle ont implémenté ces ordres. Les rôles peuvent être apparentés à des groupes, ou des profils qui permettent de définir un ensemble de privilèges à attribuer à des utilisateurs de la base de données. On considère un utilisateur défini comme suit : Pour le moment simon ne peut exécuter aucune action car il ne possède pas de privilèges de niveau système. Ch.5 - Le Langage SQL, LCD.doc page 5 / 14 om (2001-2005)

Il existe trois rôle par défaut dans Oracle : CONNECT : Pour les utilisateurs occasionnels qui n ont normalement pas besoin de créer des tables (même s ils pourront le faire). Ce rôle autorise simplement d utiliser Oracle : il permet de créer des tables, des vues, des séquences, des clusters, des synonymes, des sessions et des liens vers d autres bases de données. RESOURCE : Pour les utilisateurs réguliers. Accorde des droits supplémentaires pour la création de tables, de séquences, de procédures, de déclencheurs, d index et de clusters. DBA : Regroupe tous les privilèges de niveau système avec des quotas d espace illimités et la possibilité d accorder n importe quel privilège à un autre utilisateur. Le compte système est employé par un utilisateur disposant d un rôle DBA. B.3. Les privilèges (La liste des privilèges figure en annexes.) GRANT <privilège_système> <rôle> [,<privilège_système> <rôle>, ] TO <utilisateur> <rôle> [,<utilisateur> <rôle>, ] [WITH ADMIN OPTION] La commande GRANT permet d accorder n importe quel privilège système ou rôle à un utilisateur, à un rôle, ou au groupe d utilisateurs PUBLIC. Si la clause WITH ADMIN OPTION est spécifiée, le bénéficiaire peut à son tour assigner le privilège ou le rôle qu il a reçu à d autres utilisateurs ou rôles. Celui qui attribue un privilège à un rôle peut aussi le révoquer : REVOKE <privilège_système> <rôle> [,<privilège_système> <rôle>, ] TO <utilisateur> <rôle> [,<utilisateur> <rôle>, ] Un utilisateur qui dispose du rôle de DBA peut révoquer les privilèges CONNECT, RESSOURCE, DBA ou tout autre privilège ou rôle accordés à un autre utilisateur ou administrateur de base de données. Cette commande est donc très dangereuse, c est pourquoi les privilèges DBA doivent être accordés uniquement aux personnes dont la fonction l exige. Nota : Révoquer tous les privilèges d un utilisateur ne supprime ni son compte ni les objets qu il possède. Cela l empêche simplement d y accéder. Les autres utilisateurs disposant d un accès aux objets de cet utilisateur peuvent continuer à y accéder comme si de rien n était. Pour supprimer l utilisateur et tous les objets qu il possède (CASCADE) : DROP USER <utilisateur> [CASCADE]; Un utilisateur peut accorder des privilèges d accès à tout objet qu il possède, alors que l administrateur de la base peut octroyer n importe quel privilège système, car le rôle DBA inclut les privilèges GRANT ANY et GRANT ANY ROLE. Nous allons donner le rôle de DBA à simon : Ch.5 - Le Langage SQL, LCD.doc page 6 / 14 om (2001-2005)

Simon va se connecter sous son compte et créer une base de données dont il deviendra automatiquement le propriétaire. Simon créé un jeu d essai avec l insertion de cinq produits : Simon va créer deux nouveaux utilisateurs, bob et judy, et leur accorde les privilèges suivants : Bob et Judy ont tous les deux le droit de se connecter à Oracle, bob a des privilèges supplémentaires. Aucun des deux ne peut accéder aux tables de steve tant qu il n y a pas été explicitement autorisé. On utilise pour cela : GRANT <privilège_objet> [(colonne [, colonne])] ON <objet> TO <utilisateur rôle> [WITH GRANT OPTION]; Ch.5 - Le Langage SQL, LCD.doc page 7 / 14 om (2001-2005)

L utilisateur peut accorder les privilèges suivants : Sur les tables, vues et snapshot qu il possède : INSERT, UPDATE, DELETE, SELECT. Sur les tables qu il possède : ALTER, REFERENCES, INDEX, ALL (tous les privilèges évoqués). Sur les procédures, fonctions, packages, types de données abstraits qu il possède : EXECUTE. Sur les séquences qu il possède : SELECT, ALTER. Simon accorde le privilège SELECT à bob sur la table produit et lui accorde le privilège d accorder également le privilège sur la table. De cette manière bob pourra à son tour accorder des droits sur la table produit mais également sur les vues qu il créera lui-même sur la table produit? Bob se connecte à son compte et choisi d interroger la table de simon : Bob est obligé de préciser simon.produit (certaines bases de données n ont pas cette notation) quand il veut utiliser la table produit sinon on lui signifiera que cette table n existe pas. Pour éviter d avoir à saisir le nom de la table, bob décide de créer une vue sur la table qu il nommera prod. Il pourra donc exécuter ses requêtes avec un nom de table (donc de vue) plus simple : Simon se connecte à son compte et décide de créer une vue sur la table produit en faisant une projection des colonnes codeprod, libelleprod et prixprod estimant que le code de rayon était une donnée confidentielle. Ch.5 - Le Langage SQL, LCD.doc page 8 / 14 om (2001-2005)

Simon accorde les privilèges SELECT et UPDATE à bob sur cette vue, et révoque tous les privilèges qu il disposait sur la table produit : Simon se connecte avec le nom de bob pour vérifier : Bob n a plus que la vue : Mais il ne peut plus y accéder puis qu il n a plus aucun privilège sur la table produit : Par contre il peut manipuler la vue simon.catproduit : On a donc utilisé toute la puissance d Oracle puisqu on à sécurisé les données d une table en ne laissant accès qu à une vue sur cette table à certains utilisateurs. Ch.5 - Le Langage SQL, LCD.doc page 9 / 14 om (2001-2005)

Bob décide de créer sa propre vue sur la vue nommée catalogue : Bob tente alors une mise à jour dans sa vue sur la référence P004 dont le libellé est erronée : Il vérifie le résultat dans la vue créée par simon : Cette modification sera valable dans la table produit si simon avait vérifié à son tour. Bob ne peut donc faire que des sélections (SELECT) et des mises à jour (UPDATE) il ne peut pas, par exemple, supprimer un enregistrement, même dans la vue qu il a lui-même créée : B.4. Création de synonyme Pour éviter de créer une vue sur une table (ou une vue) simplement dans le but d en simplifier le nom d utilisation, on peut simplement créer un synonyme : CREATE SYNONYM <nom-synonyme> FOR <Table vue>; Par exemple bob aurait pu faire : create synonym catalogue from simon.catproduit; Cela lui aurait permis de traiter ce synonyme exactement comme une vue. B.5. Transmission des privilèges Bob peut autoriser d autres utilisateurs à accéder à ses objets, mais pas à des objets qu il ne possède pas. Bob essaye d octroyer à judy le privilège INSERT (qu il ne possède pas) sur une vue qu il ne possède pas : Bob essaye d octroyer à judy le privilège SELECT (qu il possède) sur une vue qu il ne possède pas : Ch.5 - Le Langage SQL, LCD.doc page 10 / 14 om (2001-2005)

S il avait reçu le droit d accéder à la vue catproduit avec l option WITH GRANT OPTION, la transmission de privilèges qu il possède aurait fonctionnée. Bob essaye alors d attribuer le privilège SELECT à Judy pour la vue catalogue qu il possède : Etant donné que catalogue s appui sur une vue créée par simon sur laquelle il n a pas les privilèges WITH GRANT OPTION il ne peut donc pas en accorder. Bob décide donc de créer sa propre table : Il insère deux données : Il attribut des privilèges à judy sur sa table : Judy se connecte et teste avec une requête sur la table : Ch.5 - Le Langage SQL, LCD.doc page 11 / 14 om (2001-2005)

Etant donné que bob a créé la table supertable, il en est le propriétaire il a le droit d y autoriser l accès à d autres utilisateurs. C. Administration paramétrée C.1. Création de rôles On peut ajouter à la liste des rôles par défaut d Oracle (CONNECT, RESOURCE, DBA) des rôles comprenant des privilèges de niveau système ou objet, ou une combinaison des deux. Pour pouvoir créer des rôles il faut avoir le privilège système CREATE ROLE. Judy essaye en vain de créer un rôle mais elle n a pas ce privilège : L instruction suivante permet de créer un rôle : CREATE ROLE <nom_rôle> [NOT IDENTIFIED IDENTIFIED [BY <mot_de_passe EXTERNALLY]]; Lorsqu ils viennent d être créés, les rôles ne sont associés à aucun privilège. Simon veut créer deux nouveaux rôles : C.2. Octroyer des privilèges à un rôle Une fois créé, un rôle doit recevoir des privilèges. Pour cela, la commande GRANT est employée : Simon octroi le rôle SELECT sur la table produit au rôle CLERCK : Simon octroi ensuite le privilège de se connecter à la base (CREATE SESSION) au rôle CLERCK : Simon accorde également le privilège de se connecter à la base au rôle MANAGER ainsi que le rôle CREATE DATABASE LINK : Ch.5 - Le Langage SQL, LCD.doc page 12 / 14 om (2001-2005)

C.3. Octroyer un rôle à un autre rôle Des rôles peuvent être attribués à d autres rôles à l aide de la commande GRANT. Simon veut octroyer les privilèges du rôle CLERK à bob : Ainsi simon peut accorder le rôle CLERK à bob : Bob reçoit donc tous les droits du rôle CLERK : CREATE SESSION, SELECT sur la table produit. Simon veut octroyer les privilèges du rôle MANAGER à judy : A présent judy possède tous les privilèges associés au rôle manager. Judy peut également attribuer le rôle manager à d autres utilisateurs ou rôles, ou bien modifier ou supprimer ce rôle. C.4. Activer ou désactiver des rôles ALTER USER <utilisateur> DEFAULT ROLE [<rôle1>, <rôle2>] [ALL ALL EXECPT <rôle1>, <rôle2>] [NONE] ALTER ROLE <nom_rôle> C.5. Pour désactiver un rôle DROP ROLE <nom_rôle>; Activer ou désactiver un rôle : SET ROLE <nom_rôle>; SET ROLE NONE; C.6. Révoquer les privilèges d un rôle REVOKE <rôle> FROM <nom_rôle>; Exemple : REVOKE SELECT ON PRODUIT FROM CLERK; Suppression d un rôle : DROP ROLE <nom_rôle>; Ch.5 - Le Langage SQL, LCD.doc page 13 / 14 om (2001-2005)

Privilège UPDATE : Le privilège UPDATE peut être limité à certaines colonnes : Par exemple : GRANT UPDATE (codeprod, libelleprod) ON produit to judy; Ch.5 - Le Langage SQL, LCD.doc page 14 / 14 om (2001-2005)