Administration Base de Données 2011-2012
P.2
La gestion des utilisateurs sous Oracle
A sa création (
ordre sql « Create user »
), un utilisateur ne possède aucun privilège, il faut les lui affecter
explicitement (Grant).
Oracle dispose de deux types de privilèges ainsi que des rôles pour gérer les droits d’accès des utilisateurs aux
objets.
Un « privilège système », objectivement destiné aux administrateurs, autorise des opérations système sur la base
de données.
Exemple de privilèges système :
« alter database » : privilège de modifier la base de données
« create role » : privilège de créer des rôles
« create tablespace » : privilège de créer des tablespaces
« create any table » : privilège de créer des tables dans n’importe quel schéma
Un « privilège objet » permet de contrôler les accès à un objet particulier. Ce sont les privilèges définis par la
norme sql, complétés de privilèges spécifiques à Oracle.
Exemple de privilèges objet spécifique à Oracle :
« alter » : donne le privilège de modifier la structure de l’objet référencé (table, vue)
« index » : donne le privilège de créer des index pour la table référencée
« execute » : donne le privilège d’exécuter la fonction/procédure référencée
Un « rôle » est un regroupement de plusieurs privilèges et/ou autres rôles qui facilite l’attribution de privilèges
multiples aux utilisateurs.
Exemple de rôles que l’on peut créer : rôle pour chaque tâche d’application, rôle pour chaque type d’utilisateur.
Plusieurs rôles sont prédéfinis par Oracle comme par exemple
« dba » : tous les privilèges système
« connect » : le privilège de se connecter à la base de données, de créer une session
A sa création (
ordre sql « Create role »
), un rôle ne possède aucun privilège, ces derniers doivent être explicitement
attribués au rôle en utilisant un ordre GRANT.
A la création d’une base de données, Oracle crée les administrateurs SYS et SYSTEM qui possède tous les
privilèges système et tous les rôles prédéfinis.
Lors de la création d’un utilisateur, on lui attribue en général trois tablespaces : un tablespace Données qui est le
tablespace par défaut de l'utilisateur ; un tablespace pour le tri qui est le tablespace temporaire de l’instance en
général ; un tablespace pour les index qui est également le tablespace dédié aux index en général dans l’instance.
Il est aussi possible d’affecter un PROFIL à un utilisateur. Un profil (
ordre sql « Create profile »
)est un ensemble
nommé de limites de ressources (temps de connexion, temps d’inactivité, SGA privée, durée de vie du mot de
passe, nombre de tentatives infructueuse de login, …).
Etapes de création d’un utilisateur
-choisir le nom et le mode d’identification (Oracle ou Système d’Exploitation)
-identifier les tablespaces requis (données, tris, index)
-arrêter le quota pour chaque tablespace
-créer l’utilisateur (create user)
-allouer les rôle et/ou privilèges
Gestion d’un compte utilisateur
Modification
L’ordre de modification est ALTER USER, pour modifier des paramètres de l’utilisateur tels que son tablespace par
défaut, son quota dans son tablespace, son mot de passe, son droit à se connecter à la base, …
Suppression
L’ordre de suppression est DROP USER, à utiliser avec l’option « CASCADE » si l’utilisateur possède des objets
Information
Plusieurs vues du Dictionnaire fournissent des informations sur les utilisateurs, parmi elles : DBA_USERS, et
DBA_TS_QUOTAS