Oracle8 compte utilisateur

Transcription

Oracle8 compte utilisateur
Oracle 8i
Le compte utilisateur
( Module 2 jours)
Auteur : Jean-Marie Mahé
1
© Institut Poly-Informatique 2002
1.
2.
3.
Présentation :................................................................................................................................................... 3
Création du compte utilisateur : ...................................................................................................................... 4
Les profils : ..................................................................................................................................................... 6
3.1 Les caractéristiques d’un profil sont :....................................................................................................... 6
3.2 L’activation des limites de ressources : ..................................................................................................... 6
4. Les privilèges : ................................................................................................................................................ 7
4.1 les privilèges système : ................................................................................................................................ 7
4.2 les privilèges objets : ................................................................................................................................... 8
5. Les rôles :........................................................................................................................................................ 9
2
© Institut Poly-Informatique 2002
LES COMPTES UTILISATEURS ORACLE
1. Présentation :
Toutes Base de données dans un environnement MULI-UTILISATEURS doit être sécurisé.
Chaque utilisateur possède donc un compte et son mot de passe lui permettant d’ouvrir une
session sur le serveur. Mais la sécurisation des bases de données ne s’arrête pas à se simple
contrôle d’entrée. L’administrateur de la SGBD peut autorisé l’accès uniquement à certaines
ressources, réduire les actions en fonction d’octroi de privilèges prédéterminés. En fait il y a
d’un coté la sécurité du système (droit d’accès) et de l’autre la sécurité des données
(privilèges).
L’administrateur de la base de données définit l’environnement de travail des utilisateurs. Cet
environnement peut être considéré comme un domaine de sécurité définit par les paramètres
suivants :.
Quotas de tablespace : ils gèrent la quantité de mémoire physique alloué à un utilisateur.
Tablespace par défaut : Il définit l’emplacement où sont stockés les segments crées par
l’utilisateur et les données qu’il contient.
Tablespace temporaire : espace réservé pour l’utilisateur lors de tris éventuels sur le disque.
Verrous sur les comptes : l’administrateur peut verrouiller l’accès à la base de données.
3
© Institut Poly-Informatique 2002
Limites de ressources : comme le temps processeur, le nombre de sessions ouvertes par un
utilisateur (cf : gestion des profils)
Les privilèges Directs : ils servent à contrôler les opérations qu’un utilisateur peut effectuer
dans son environnement.
Les privilèges de rôle : il est possibles d’accorder indirectement des privilèges à un utilisateur
par l’intermédiaire de rôles réunissant plusieurs privilèges. Il sont conçus pour simplifier
l’administration des utilisateurs.
2. Création du compte utilisateur :
Pour ouvrir une session sur le serveur Oracle et obtenir son domaine de sécurité
l’administrateur déclare ainsi chaque utilisateur :
CREATE USER <user> IDENTIFIED BY < password>
DEFAULT TABLESPACE <tablespace des utilisateurs>
TEMPORARY TABLESPACE <tablespace temporaire>
QUOTA 15m ON <tablespace des utilisateurs>
PASSWORD EXPIRE;
*Aucun quota n’est défini par défaut.
4
© Institut Poly-Informatique 2002
Attention, si le Tablespace n'est pas précisé lors de la création du compte le tablespace
SYSTEM sera attribué par défaut. (cf. cours administration)
Le QUOTA par défaut est UNLIMITED. Peut être exprimé en octets, Kilo-octets ou
Mégaoctets.
L’option PASSWORD EXPIRE : oblige l'utilisateur à changer dès qu'il utilise la base avec
SqlPlus (si authentification par la base)
Il est possible à tout moment de modifier l’environnement de travail d’un utilisateur avec la
commande ALTER USER. Dans l’exemple ci-dessous le compte est momentanément
verrouillé.
ALTER USER <user> IDENTIFIED BY <new password>
ACCOUNT LOCK ;
Dans celui-ci le quota est étendue à 30 megaoctets.
ALTER USER <user> QUOTA 30m ON data01;
Ce nouvel environnement sera pris en compte lors de la prochaine session.
La commande DROP USER permet de supprimer un utilisateur et ses objets en utilisant
l’option CASCADE :
DROP USER <user> CASCADE ;
* il est impossible de supprimer un utilisateur connecté au serveur.
Les vues DBA_USERS et DBA_TS_QUOTAS permettent de contrôler l’état des différents
comptes utilisateurs.
5
© Institut Poly-Informatique 2002
3. Les profils :
Un profil est un ensemble nommé de limites imposées aux ressources système et au mot de
passe de l’utilisateur comme :
•
•
•
•
•
•
•
Le temps processeur
Les opérations E/S
Le temps d’inactivité
Le temps de connexion
Le nombre de session par utilisateur
La gestion du mot de passe dans le temps
Les verrous sur les comptes.
3.1 Les caractéristiques d’un profil :
-
les affectations de profil n’ont aucun effet sur les sessions en cours.
Les profils sont affectés aux utilisateurs, pas aux rôle, ni à d’autres profils.
Si aucun profil n’est attribué à un utilisateur, c’est le profil par défaut qui lui
est attribué. Celui si est crée par le serveur à la création de la base. Pour en
connaître les différentes valeur il suffit de consulter la vue DBA_PROFILES.
Après sa création le profil est affecté aux utilisateurs, si les limites de ressources1 sont
activées, le serveur restreint les ressources selon les paramètres du profil.
CREATE PROFILE développeur LIMIT
SESSION_PER_USER 2
CPU_PER_SESSION 10000
IDLE_TIME 60 ;
# tps processeur en centième de seconde
# période d’inactivité maxi en minute
Attribution de ce profil à un utilisateur:
ALTER USER <user> PROFILE développeur ;
3.2 L’activation des limites de ressources :
Elle ce fait soit en modifiant le paramètre RESSOURCE_LIMIT dan le fichier de paramètre,
en le mettant à TRUE. En utilisant la commande ALTER SYSTEM.
SVRMGR> ALTER SYSTEM SET RESSOURCE_LIMIT= TRUE ;
Pour supprimer un profil :
DROP PROFILE développeur CASCADE ;
Vous pouvez consulter les vues DBA_USERS et DBA_PROFILES avec comme condition de
jointure le champs profile, pour obtenir une sélection complète de vos profiles.
1
6
Voir 3.2
© Institut Poly-Informatique 2002
4. Les privilèges :
4.1 les privilèges système :
Le DBA est un utilisateur dit de « haut niveau », habilité à autoriser les autres utilisateurs à
l’accès aux objets de la base. Il va pouvoir mettre en place les « schémas», ou collections
d’objet (tables, index, vues, etc.) et distribuer ces schémas en fonctions des attributions de
chacun des utilisateurs dans l’entreprise.
Le DBA dispose de 80 privilèges (cf. doc. Oracle) dont celui de créer un compte utilisateur et
de lui attribuer ses privilèges.
• Le mot-clé ANY dans les privilèges signifies que les utilisateurs possèdent ce privilège dans
tous les schéma.
• La commande GRANT ajoute un privilège à un utilisateur ou un groupe d ’utilisateurs.
• La commande REVOKE supprime les privilèges.
7
© Institut Poly-Informatique 2002
4.2 les privilèges objets :
C’est un droit permettant d’exécuter une action sur une table , une vue, des index.
L’administrateur accorde ou limite ainsi les actions possibles des utilisateurs sur l’ensemble
des objets d’une base. Toutefois un propriétaire bénéficie de tous les privilèges de ses propres
objets (dans son schéma), et peut accorder à d’autres utilisateurs les privilèges qu’il souhaite
partager.
GRANT <objet-privilège [(colonnes)] |ALL>
ON <objet>
TO <utilisateur |role|PUBLIC>
# PUBLIC = tous les utilisateurs
[ WITH GRANT OPTION ] ;
# autorise le bénéficiaire à accorder à d’autre les mêmes
privileges.
GRANT CREATE SESSION, CREATE TABLE TO <user>;
GRANT select, insert ON dept TO scott WITH GRANT OPTION ;
GRANT select ON scott.dept TO PUBLIC ; #accorde à tous le select sur scott.dept
GRANT update (dname, loc)2 ON dept TO scott, manager #manager étant un rôle
Remarque : Si je retire un privilège à un utilisateur qui l’a lui même accordé à d’autres
utilisateurs ce privilège, le retrait se fait en cascade. Ils auront tous perdu le droit accordé.
A tout moment le dictionnaire de données permet de visualiser les privilèges:
- USER_TAB_PRIVS_MADE privilèges objets accordés aux objets d’ un
utilisateur.
- USER_TAB_PRIVS_RECD privilèges objets accordés à un utilisateur.
- USER_ROLE_PRIVS rôle accessible à un utilisateur.
2
8
Seul UPDATE et INSERT permettent l’octroi ou non sur les colonnes.
© Institut Poly-Informatique 2002
REVOKE permet de retirer les privilèges objets.
REVOKE <objet-privilège [(colonnes)] |ALL>
ON <objet>
FROM <utilisateur |role|PUBLIC> ;
# PUBLIC = tous les utilisateurs
REVOKE select, insert ON dept FROM scott ;
5. Les rôles :
Pour facilité le travail de l’administrateur il est possible de définir un groupe de privilèges
dans un « rôle ». Celui-ci sera utilisé pour déterminer les droits d’un ou de plusieurs
utilisateurs. Un utilisateur peut donc avoir accès à plusieurs rôles et le même rôle peut être
bien sûr attribué à plusieurs utilisateurs.
CREATE ROLE <role> ;
En fait le rôle doit être d’abord crée, des privilèges doivent lui être octroyés, puis le rôle est
attribué aux utilisateurs.
Les commande GRANT et REVOKE permettent l’attribution et le retrait des rôles.
A) CREATE ROLE manager ;
# création du rôle.
B) GRANT create table, create view, create index TO manager ; # attribution des privileges
C) GRANT manager TO scott ;
#attribution du rôle aux
utilisateurs.
Les avantages :
-
Simplification de la gestion des privilèges puisque vous pouvez attribuer les
mêmes privilèges à un groupe d’utilisateur.
Une seule modification d’un rôle est de facto attribuée à tous les utilisateurs
concernés.
En activant les rôles, il y a moins de privilèges à vérifier lors de l’exécution d’une
commande; moins d’information enregistrée dans la base.
Les rôles peuvent être activés ou désactiver avec la commande SET ROLE.
Suppression d’un rôle pour un utilisateur : REVOKE manager FROM <user>;
Destruction d’un rôle : DROP ROLE manager;
9
© Institut Poly-Informatique 2002