Académique Documents
Professionnel Documents
Culture Documents
Anne Doucet
1
Plan
• Authentification
• Autorisation
– Privilèges
– Rôles
– Profils
– Limitations de ressources
• Audit
• Contrôle d’accès via les vues
2
Sécurité
• Confidentialité
– L’information ne doit pas être accessible aux utilisateurs
non autorisés
• Intégrité
– Les données ne peuvent être modifiées que par les
utilisateurs habilités à le faire.
• Disponibilité
– Les utilisateurs ayant le droit de faire certaines actions
doivent pouvoir accéder aux données correspondantes.
• Les SGBD fournissent différents moyens pour garantir la
sécurité : authentification, contrôle d’accès, mécanismes
d’audit, vues.
3
Authentification
• Chaque BD Oracle possède une liste de noms d’utilisateurs, et un mot de
passe associé.
– Vérifié quand un utilisateur veut utiliser des données, des ressources,
des applications, par le système d’exploitation, le réseau, la base
Oracle.
– Authentification dans Oracle : cryptage du mot de passe, verrouillage
des comptes, expiration du mot de passe, vérification de la complexité
du mot de passe.
• A la création d’un nouvel utilisateur, on définit
– un espace de stockage des tables par défaut (default tablespace),
– un espace de stockage de tables temporaire (temporary tablespace),
– des quotas sur ces espaces.
– Un profil délimitant l’accès aux ressources
4
Autorisation
• Tous les éléments SQL ont un propriétaire. Un propriétaire
d’un objet possède tous les droits (privilèges) sur cet objet.
5
Privilèges
• Un privilège est un droit accordé pour utiliser un type
d’instruction SQL, ou pour accéder à un objet.
• Principe :
– Accorder des privilèges aux utilisateurs pour qu’ils puissent
travailler.
– N’accorder aux utilisateurs que les privilèges dont ils ont
besoin. Trop de privilèges peut compromettre la sécurité.
• Les privilèges sont accordés individuellement ou par groupe
d’utilisateurs (role)
• Deux types de privilèges :
– System privilege
– Schema Object Privilege
6
System Privileges
Droits d’effectuer certaines actions :
GRANT : Accorder
<System privilege> : liste de privilèges
Exemples : CREATE INDEX, CREATE PROCEDURE, DELETE ANY
TABLE, ALTER USER, CREATE VIEW, DROP ANY VIEW, DROP
USER, …
TO <user_list> : liste d’utilisateurs autorisés
TO PUBLIC donne les droits à tous les utilisateurs.
WITH GRANT OPTION:permet d’accorder(transmettre) le privilège à d’autres
utilisateurs.
8
Utilisation des privilèges
Ex :
EMP(ID_EMP, NOM, SALAIRE, ID_SERVICE)
SERVICE(ID_SERV, INTITULE, ID_DIR)
10
Transmission des privilèges
11
Exemple
Max est le propriétaire du schéma Emp, Service.
Il effectue les ordres :
GRANT SELECT, INSERT ON emp TO jules, lulu WITH
GRANT OPTION;
GRANT SELECT, INSERT ON Service TO jules, lulu
WITH GRANT OPTION;
Jules effectue les ordres suivants :
GRANT SELECT, INSERT ON emp TO zoe;
GRANT SELECT ON service TO zoe;
Lulu effectue les ordres suivants :
GRANT SELECT, INSERT(NOM) ON emp TO zoe;
GRANT SELECT ON service TO zoe;
Zoé a reçu les droits SELECT sur Emp et Service de deux
utilisateurs différents. Elle a aussi reçu le droit
INSERT(NOM) de deux façons différentes.
12
Diagramme des droits
Lulu
INSERT
Jules On Emp
SELECT *
OnEmp
*
Jules Zoé
INSERT Zoé INSERT
On Emp Zoé Zoé SELECT On Emp
* INSERT(NOM) SELECT On Emp
onEmp onServ
*: with grant option
13
** : propriétaire
Annulation des privilèges
La transmission des droits conduit à un recouvrement des privilèges. SQL
maintient un graphe des privilèges gardant la trace des privilèges et de leurs
origines (utile pour l’annulation des privilèges).
14
REVOKE
15
Exemple
Max Max Max
Max INSERT SELECT
SELECT INSERT
On Serv On Emp on Emp
on Serv Lulu
** ** ** SELECT
**
On Serv
* Lulu
Jules
SELECT
SELECT
On Emp
On Serv
* *
Lulu
INSERT
Jules On Emp
SELECT *
OnEmp
*
Jules Zoé
INSERT Zoé INSERT
On Emp Zoé Zoé SELECT On Emp
* INSERT(NOM) SELECT On Emp
onEmp onServ
REVOKE SELECT,INSERT ON emp FROM lulu; 16
Renvoie error
Exemple
Max Max Max
Max INSERT SELECT
SELECT INSERT
On Serv On Emp on Emp
on Serv Lulu
** ** ** SELECT
**
On Serv
* Lulu
Jules
SELECT
SELECT
On Emp
On Serv
* *
Lulu
INSERT
Jules On Emp
SELECT *
OnEmp
*
Jules Zoé
INSERT Zoé INSERT
On Emp Zoé Zoé SELECT On Emp
* INSERT(NOM) SELECT On Emp
onEmp onServ
17
REVOKE SELECT,INSERT ON emp FROM lulu CASCADE;
Rôles
18
Exemple
19
Roles prédéfinis
20
Profils
• Chaque utilisateur a un profil qui spécifie les ressources
auxquelles il a droit.
• Permet de réguler la charge, quand il y a beaucoup
d’utilisateurs.
• Plusieurs types de ressources
– Ressources système (nombre des sessions concurrentes,
temps CPU, temps de connexion, …)
– Restrictions concernant le mot de passe
• Blocage après un nombre d’essais sans succès
• Délai d’expiration du mot de passe
• Réutilisation du mot de passe
21
Ressources système (1)
• SESSIONS_PER_USER
– Une session créée à chaque connexion
– Consomme du temps CPU, et de la mémoire
• CPU_PER_SESSION
– Limite le temps CPU par session (en centièmes de
secondes)
– Permet d’éviter de trop grandes consommations, qui
pénalisent les autres utilisateurs
• CPU_PER_CALL
– Limite le temps CPU par appel
22
Ressources système (2)
• CONNECT_TIME
– Limite le temps de connection d’un utilisateur
• IDLE_TIME
– Limite le temps d’inactivité
• LOGICAL_READS_PER_SESSION
– L’accès disque est une des opérations les plus coûteuses
– Limite le nombre d’accès disque autorisés pour une session
• LOGICAL_READS_PER_CALL
– Limite le nombre d’accès disque autorisés pour une
instruction
23
Ressources système (3)
• PRIVATE_SGA (system global area),
– Limite la taille de l’espace système privé
– exprimée en bits.
• COMPOSITE_LIMIT
– Permet de définir une limite globale d’un ensemble de
ressources pour une session. Le coût total d’une session est
calculé en faisant une moyenne pondérée des paramètres
suivants : CPU_PER_SESSION, CONNECT_TIME,
PRIVATE_SGA, LOGICAL_READS_PER_SESSION
24
Ressources ‘Password’
• FAILED_LOGIN_ATTEMPTS
– Limite le nombre d’essais infructueux
• PASSWORD_LIFE_TIME
– Limite la durée d’expiration du mot de passe (en nb de jours)
• PASSWORD_REUSE_TIME
– Limite le nombre de jour avant que le mot de passe puisse être réutilisé
• PASSWORD_REUSE_MAX
– Limite le nombre de changements de mots de passe avant de pouvoir
réutiliser celui-ci.
26
Dépassement des limites
27
Surveillance (Audit)
28
Vues
29
Vues
• Une vue est une relation virtuelle, qui contient le résultat d’une
requête Q sur la base.
• Syntaxe :
CREATE VIEW nom_vue [(att1, att2...)]
AS requête_SQL [ WITH CHECK OPTION ]
31
Confidentialité et vues
32
Conclusion
33