Cours Oracle DBA
-
Upload
chakir-labari -
Category
Documents
-
view
111 -
download
12
description
Transcript of Cours Oracle DBA
PLAN
• Pourquoi un SGBD ?
• Architecture du SGBD oracle
• Construire une base de données sous Oracle
• Administrer une base de données
Pourquoi un SGBD ?
• Indépendance physique: Plus besoin de travailler directement sur les fichiers physiques .
• Indépendance logique : Un même ensemble de données peut être vu différemment par des users différents
• Manipulations des données par des non informaticiens : langage quasi-naturel
• Efficacité des accès aux données : doit permettre d’obtenir des réponses aux interrogations en un temps raisonnable
• Cohérence des données: permettre d’ajouter des contraintes aux valeurs. Par exemple :
– l’âge d’une personne supérieur à zéro
– Salaire supérieur à zéro
Pourquoi un SGBD (2) ?
• Non redondance des données : Afin d’éviter les problèmes lors des mises à jour, chaque donnée ne doit être présente qu’une seule fois dans la base
• Partageabilité des données : Il s’agit de permettre à plusieurs utilisateurs d’accéder aux mêmes données au même moment.Il s’agit alors de pouvoir :– Permettre à deux (ou plus) utilisateurs de modifier la
même donnée « en même temps »;– Assurer un résultat d’interrogation cohérent pour un
utilisateur consultant une table pendant qu’un autre la modifie.
Pourquoi un SGBD (3) ?
• Sécurité des données : Données protégées contre accès non autorisés => Associer à chaque user des droits d’accès .
• Résistance aux pannes: Récupérer la base dans un état sain
Pourquoi un SGBD (4) ?
Création de base de données
• Lancer l’assistant de gestion de bases de données (Database Configuration Assistant)
• Créer votre propre base de données :
– Portant le mot TP suivi de votre nom : TP_XXXX ;
– Ayant comme mot de passe : oracle
Requêtes utiles
• Connaître l’instance courante :
SHOW PARAMETER INSTANCE_NAME
• Connaître la taille de la mémoire partagée :
SHOW PARAMETER MEMORY_TARGET
Infos sur les processus
• Les vues
V$PROCESS, V$BGPROCESS
Lister les noms de tous les background processus ?
Rôle : écrit les blocs modifiés du cache de
tampons de la base dans des fichiers de
données stockés surdisque.
Fréquence d’écriture du DBW
• Toutes les 3 secondes
• Dès que la Dirty List (liste des blocs modifiés) dépasse un seuil prédéfini
• Lors de chaque CheckPoint ( CKPT)
• Chaque fois qu’une base est arrêtée normalement
Processus LGWR (obligatoire)
Rôle : écrit les entrées de journalisation sur le disque.
Fréquence d’écriture du LGWR
• Toutes les trois secondes
• Lors de la validation d’une transaction en cours « COMMIT »
• Si le buffer REDO LOG est rempli à 1/3
• Lors de chaque Checkpoint (CKPT)
• Lorsqu’il est déclenché par le processus DBWn
Processus CKPT ( obligatoire )
Rôle : met à jour l'ensemble des fichiers de
données et de contrôle de la base afin
d'indiquer le point de reprise le plus
récent.
Fréquence d’écriture du CKPT
• Manuellement : ALTER SYSTEM CHECKPOINT
• Lors d’un arrêt propre de l’instance Oracle
Processus ARCn (optionnel )
Rôle : copie les fichiers de journalisation
(fichiers redo log) dans le lieu destiné au
stockage des archives lorsqu'un
changement de fichier de journalisation se
produit.
Processus SMON (obligatoire )
Rôles :
• Effectue une récupération après panne lorsque
l'instance est démarrée après une défaillance.
• Nécessaire au démarrage de l’instance Oracle
• Nettoie les segments temporaires et inutilisés
• Fusionne l’espace libre dans de plus grand
blocs contigus
Processus PMON ( obligatoire )
Rôles :
• effectue un nettoyage de processus lorsqu'un processus utilisateur échoue.
• Récupération des processus utilisateurs défaillants
• Libère le cache de blocs de données
• Libère les ressources qui étaient exploitées par les utilisateurs
• Fusionne l’espace libre dans de plus grand blocs contigus
Remarque : à l’instar du processus SMON, le processus PMON s’active régulièrement pour se rendre compte si on a besoin de lui.
(1) Tablespace
SQL> create table
subjects (
2 subject_id
number not null,
3 subject_name
varchar2(30) not
null,
4 description
varchar2(4000)
5 )
6 tablespace
users;
SYSTEM tablespace
SYSTEM – a tablespace that is always used to store SYSTEMdata that includes data about tables, indexes, sequences, and other objects – this metadata comprises the data dictionary. Every Oracle database has to have a SYSTEM tablespace—
it is the first tablespace created when a database is created.
Accessing it requires a higher level of privilege. You cannot rename or drop a SYSTEM tablespace. You cannot take a SYSTEM tablespace offline. The SYSTEM tablespace could store user data, but this is
not normally done—a good rule to follow is to never allow allow the storage of user segments in the SYSTEMtablespace.
This tablespace always has a SYSTEM Undo segment.
SYSAUX tablespace
The SYSAUX tablespace stores data for auxiliary applications such as the LogMiner, Workspace Manager, Oracle Data Mining, Oracle Streams, and many other Oracle tools.
This tablespace is automatically created if you use the Database Creation Assistant software to build an Oracle database.
Like the SYSTEM tablespace, SYSAUX requires a higher level of security and it cannot be dropped or renamed.
Do not allow user objects to be stored in SYSAUX. This tablespace should only store system specific objects.
This is a permanent tablespace.
Non-system tablespacesUNDO tablespace :
Le tablespace UNDO, comme son nom l'indique, est réservé exclusivement à l'annulation des commandes DML (UPDATE, INSERT, etc...). Lorsqu'on exécute l'ordre DELETE par exemple, Oracle commence par copier les lignes à supprimer dans le tablespace UNDO et ensuite indique que les blocs contenant les données dans le tablespace d'origine sont libres. Un ROLLBACK permettre de revenir en arrière alors que le COMMIT supprimera les lignes du tablespace UNDO (on comprend mieux ici pourquoi un DELETE est si long : 2 écritures pour une suppression :-/).
Non-system tablespacesTEMP tablespace :
Un tablespace temporaire est un tablespacespécifique aux opérations de tri Ce tablespace n'est pas destiné à accueillir des objets de la base de données et son usage est réservé au système.
Rôle d'un Tablespace
• Organiser logiquement le stockage des données (localisation d’une application dans un Tablespace, cantonnement des utilisateurs dans un tablespace)
• Contrôler l'allocation des espaces disques au utilisateurs via des quotas
• Augmenter la disponibilité des données (arrêt partiel d'une base via l'arrêt d'un Tablespace)
• Sauvegarder et restaurer partiellement une base
• Améliorer les performances grâce à la distribution des informations sur des disques différents (index dans tablespace et les tables dans un autre)
• Fournir les paramètres de stockages des données par défaut
Pourquoi mon code SQL de création de table a toujours
fonctionné alors que je n’ai jamais précisé de Tablespace?
La raison est : tous les comptes ont un Tablespace par défaut.
Alors pourquoi s’en préoccuper ?
Le DBA ne peut pas répartir les objets de façon optimale car il ne sait pas comment fonctionne l’application. Généralement, le DBA va créer deux tablespaces : 1 Tablespace pour les tables + 1 Tablespace pour les indexes (pour chaque schéma). Ces 2 Tablespaces auront leurs fichiers sur des disques distincts. De cette manière, les lectures/écritures seront réparties sur les disques.Il faut ensuite à chaque création d’objet, préciser le Tablespace cible.
Information sur les tablespaces
• DBA_TABLESPACES
• V$TABLESPACE
• DBA_DATA_FILES
• V$DATAFILE
• DATABASE_PROPERTIES
• USER_TABLESPACES
Types de tablespace :
1- tablespace permanente
2- tablespace temporaire
3- tablespace UNDO
2 types :
• SMALLFILE (par défaut) => fichier de 2^22 blocs (8KB = 32GB par fichier)
• BIGFILE => fichier de 2^32 blocs (8KB = 32TB)
Création d’un tablespaceLa commande CREATE TABLESPACE
CREATE TABLESPACE tablespace[DATAFILE clause][MINIMUM EXTENT integer[K|M]][BLOCKSIZE integer [K]][LOGGING|NOLOGGING][DEFAULT storage_clause ][ONLINE|OFFLINE][PERMANENT|TEMPORARY][extent_management_clause][segment_management_clause]
As you can see, almost all of the clauses are optional. The clauses are defined as follows:
• TABLESPACE: This clause specifies the tablespacename.
• DATAFILE: This clause names the one or more datafiles that will comprise the tablespace and includes the full path, example:
DATAFILE'/u01/student/dbockstd/oradata/USER350data01.dbf' SIZE 10M
• MINIMUM EXTENT: Every used extent for the tablespace will be a multiple of this integer value. Use either T, G, M or K to specify terabytes, gigabytes, megabytes, or kilobytes.
• BLOCKSIZE: This specifies a nonstandard block size – the integer value for BLOCKSIZE must correspond with one of the DB_nK_CACHE_SIZE parameter settings.
• LOGGING: This is the default – all tables, indexes, and partitions within a tablespace have modifications written to Online Redo Logs.
• NOLOGGING: This option is the opposite of LOGGING and is used most often when large direct loads of clean data are done during database creation for systems that are being ported from another file system or DBMS to Oracle.
• DEFAULT storage_clause: This specifies default parameters for objects created inside the tablespace. Individual storage clauses can be used when objects are created to override the specified DEFAULT.
• OFFLINE: This parameter causes a tablespaceto be unavailable after creation.
ALTER TABLESPACE users OFFLINE;
• PERMANENT: A permanent tablespace can hold permanent database objects.
CREATE TABLESPACE tbs_perm_01
• TEMPORARY: A temporary tablespace can hold temporary database objects, e.g., segments created during sorts as a result of ORDER BY clauses or JOIN views of multiple tables.
CREATE TEMPORARY TABLESPACE tbs_temp_01
• extent_management_clause: This clause specifies how the extents of the tablespace are managed and is covered in detail later in these notes.
• segment_management_clause: This specifies how Oracle will track used and free space in segments in a tablespace that is using free lists or bitmap objects.
• datafile_clause: filename [SIZE integer [K|M] [REUSE][ AUTOEXTEND ON | OFF ]filename: includes the path and filename and file size.
REUSE: specified to reuse an existing file. • NEXT: Specifies the size of the next extent.• MAXSIZE: Specifies the maximum disk space
allocated to the tablespace. Usually set in megabytes, e.g., 400M or specified as UNLIMITED.
Exemple création tablespace permanente :
CREATE TABLESPACE tbs_perm_01
DATAFILE 'tbs_perm_01.dat'
SIZE 20M
ONLINE;
Exemple création tablespace temporaire :
CREATE TEMPORARY TABLESPACE tbs_temp_01 TEMPFILE 'tbs_temp_01.dbf' SIZE 5M AUTOEXTEND ON;
Exemple création tablespace UNDO :
CREATE UNDO TABLESPACE tbs_undo_01 DATAFILE 'tbs_undo_01.f' SIZE 5M AUTOEXTEND ON RETENTION GUARANTEE;
Par exemple , chaque table de donnée est stockée dans son propre segment de données et Chaque index de donnée est stocké dans son propre segment d’index .
Segments
• Segments : • Le niveau logique de stockage situé au-dessus• d'un extent s'appelle un segment.• Un segment est un ensemble d'extents alloués• pour une certaine structure logique.• Seuls les objets 'physiques' peuvent être des• segments. Ainsi une vue ou un synonyme• n'est pas un segment...
• Types de segment : Segments de données, Segments d'index, Segments d'annulation (rollback segment), Segments temporaires
Extents
Extents (ensembles de blocs contigus)
Le niveau logique d'une base de données
s'appelle un extent.
Un extent est un nombre défini de blocs de
données contigus (obtenus par une allocation
unique) permettant de stocker un type
spécifique d'informations.
Bloc de données
Au niveau de détail le plus fin, les données d'une
base Oracle sont stockées dans des blocs de
données.
Un bloc de données correspond à un nombre
d'octets spécifique d'espace physique sur le
disque.
La taille du bloc de données est indiquée pour
chaque tablespace lors de la création de celui-ci.
Chaque base utilise et alloue de l'espace libre de
base de données dans les blocs de données
Oracle.
Structure physique d’une BD (2)
Les fichiers constituant une base de données Oracle sont organisés de la façon suivante :
Fichiers de contrôle : contiennent des données sur la base
elle-même (informations sur la structure physique de la base de
données). Ces fichiers sont d'une importance capitale pour la
base. Sans eux, vous ne pouvez pas ouvrir de fichiers de
données pour accéder aux données de la base.
Fichiers de données : contiennent les données utilisateur ou
les données d'application de la base.
Fichiers de journalisation en ligne : permettent la récupération
d'une instance de base de données. S'il se produit une panne de
la base sans perte des fichiers de données, l'instance peut
récupérer la base grâce aux informations contenues dans ces
fichiers.
Structure physique d’une BD (3)
Les fichiers supplémentaires ci-dessous permettent à la
base de données de s'exécuter correctement : Fichier de paramètres : permet de définir comment
l'instance est configurée lors de son lancement.
Fichier de mots de passe : permet aux utilisateurs de se
connecter à distance à la base de données et d'effectuer des
tâches d'administration.
Fichiers de sauvegarde : ces fichiers sont utilisés pour la
récupération de la base de données. Les fichiers de sauvegarde
sont généralement restaurés lorsqu'une défaillance physique ou
une erreur utilisateur a endommagé ou supprimé les fichiers
d'origine.
Structure physique d’une BD (4)Fichiers de journalisation archivés : contiennent l'historique complet
des modifications de données (informations de journalisation) générées
par l'instance.• Vous pouvez, à l'aide de ces fichiers et d'une sauvegarde de la base, restaurer un fichier
de données perdu.
• Les fichiers de journalisation archivés permettent de récupérer des fichiers de données
restaurés.
Fichiers trace : chaque processus serveur et chaque processus en
arrière-plan peut écrire dans un fichier trace associé.• Lorsqu'une erreur interne est détectée par un processus, ce dernier procède à un dump
des informations sur l'erreur vers son fichier trace.
• Certaines informations écrites dans un fichier trace sont destinées à l'administrateur de
base de données, tandis que d'autres s'adressent aux services de support technique
Oracle. .
Fichiers d’alertes : sont des fichiers trace spécifiques. Le fichier d'alertes d'une base de données est un journal chronologique des messages et des erreurs. Oracle recommande de consulter ces fichiers.
Qu’est ce qu’un privilège?
Les privilèges sont des droits pour exécuter
des requêtes
Le plus haut niveau de privilèges sont des
privilèges DBA, il a la possibilité de donner
aux utilisateurs l’accès à la base de
données
Les utilisateurs doivent posséder des
privilèges système pour se connecter à la
base de données, et les privilèges objets
pour manipuler des données
1. Mode d’identification de l’utilisateur
2 types d’identification :
– par Oracle
– par le système d’exploitation
a. Identification par Oracle :SQL> CONNECT oheu/rx239$
Connecté.
b. Identification par le système d’exploitationSQL> CONNECT /
Connecté.s
2. Création d’un utilisateur
L’ordre SQL CREATE USER permet de créer un nouvel utilisateur.
Syntaxe
CREATE USER nom IDENTIFIED BY mot_de_passe | EXTERNALLY
[ DEFAULT TABLESPACE nom_tablespace ]
[ TEMPORARY TABLESPACE nom_tablespace ]
[ QUOTA valeur [K|M] | UNLIMITED ON nom_tablespace [,...] ]
[ PROFILE nom_profil ]
[ PASSWORD EXPIRE ]
[ ACCOUNT LOCK | UNLOCK ] ;
2. Création d’un utilisateur
Exemple :CREATE USER u1 IDENTIFIED BY pass
DEFAULT TABLESPACE data
QUOTA UNLIMITED ON data
PASSWORD EXPIRE;
Pour qu’un nouvel utilisateur puisse effectivement seconnecter, il faut en plus lui donner le droit de le faire, en lui attribuant le privilège système CREATE SESSION
Les options de l’ordre SQL CREATE USER sont :Nom Nom de l’utilisateur.Nom de l’utilisateur: Cette clause indique si l’utilisateur est identifié par le
système d’exploitation (EXTERNALLY) ou par Oracle (BY mot_de_passe).
DEFAULT TABLESPACE: Cette clause indique dans quel tablespace les segments de l’utilisateur sont créés par défaut (c’estàdire si aucune clause TABLESPACE n’est présente lors de la création du segment).
TEMPORARY TABLESPACE
QUOTA La notion de QUOTA permet de limiter l’espace qu’un utilisateur peut employer dans un tablespace avec les segments qu’il crée.
l Aucun quota sur le tablespace
ORA-01950: pas de privilèges sur le tablespace’DATA’
l Dépassement de quota sur le tablespace
ORA-01536: dépassement du quota d’espace affecté au
tablespace ’DATA’
Les options de l’ordre SQL CREATE USER sont (2)PROFILE
PASSWORD EXPIRE Cette clause permet de forcer une modification du mot de passe lors de la première connexion (le mot de passe de l’utilisateur est expiré). Si le compte est créé avec l’option PASSWORD EXPIRE, l’utilisateur, lors de sa première connexion, sera invité à changer le mot de passe qui lui a été attribué initialement.
ACCOUNT
LOCK : le compte est verrouillé et la connexion interdite (erreur ORA-28000: compte verrouillé).
UNLOCK : le compte n’est pas verrouillé et la connexion autorisée (valeur par défaut).
Si le compte est créé avec l’option LOCK, le compte existe mais l’utilisateur ne peut pas se connecter. L’ordre SQL ALTER USER pourra être utilisé plus tard pour déverrouiller le compte de l’utilisateur
3. Modification d’un utilisateur
L’ordre SQL ALTER USER permet de créer un nouvel utilisateur.Syntaxe
ALTER USER nom
[ IDENTIFIED BY mot_de_passe | EXTERNALLY ]
[ DEFAULT TABLESPACE nom_tablespace ]
[ TEMPORARY TABLESPACE nom_tablespace ]
[ QUOTA valeur [K|M] | UNLIMITED ON nom_tablespace [,...] ]
[ PROFILE nom_profil ]
[ PASSWORD EXPIRE ]
[ ACCOUNT LOCK | UNLOCK ] ;
Exemplesl Modification du mot de passe d’un utilisateur
ALTER USER u1
IDENTIFIED BY tempo
PASSWORD EXPIRE;
l Modification du tablespace par défaut et attribution de quotasALTER USER u1
DEFAULT TABLESPACE test
QUOTA UNLIMITED ON test
QUOTA 10M ON data;
l Verrouillage d’un compteALTER USER u1 ACCOUNT LOCK;
l Déverrouillage d’un compteALTER USER u1ACCOUNT UNLOCK;
4. Suppression d’un utilisateur
L’ordre SQL DROP USER permet de créer un nouvel utilisateur.
Syntaxe
DROP USER nom [ CASCADE ] ;
Exemple :
DROP USER u1 CASCADE;
4. Suppression d’un utilisateur (2)
Si l’utilisateur possède des objets, l’option CASCADE doit être présente pour forcer la suppression préalable des objets. Si l’utilisateur possède des objets et que l’option CASCADE soit absente, l’erreur ORA-01922 est retournée :
ORA-01922: CASCADE à indiquer pour
supprimer ’u1’
Attention , il n’a pas de ROLLBACK possible !
Un utilisateur actuellement connecté ne peut pas être supprimé :
ORA-01940: impossible de supprimer un
utilisateur qui est connecté
5. Trouver des informations sur les utilisateurs
Plusieurs vues du dictionnaire de données permettent d’obtenir des informations sur les utilisateurs :
l DBA_USERS : informations sur les utilisateurs ;
l DBA_TS_QUOTAS : informations sur les quotas des utilisateurs.
1. Présentation
Un profil est un ensemble nommé de limitations de ressources qui peut être attribué à un utilisateur.
Les ressources suivantes peuvent être limitées :
• temps CPU par appel et/ou par session ;
• nombre de lectures logiques par appel et/ou par session ;
• nombre de sessions ouvertes simultanément par un utilisateur ;
• temps d’inactivité par session ;
• durée totale de la session ;
• quantité de mémoire privée dans la SGA (configuration serveurs partagés uniquement).
Une lecture logique correspond à une lecture de bloc lors d’une requête, que ce bloc soit déjà présent en mémoire (dans le DatabaseBuffer Cache) ou lu sur disque (dans ce cas, la lecture logique correspond aussi à une lecturephysique).
1. Présentation (2)
Depuis la version 8, les profils peuvent aussi être utilisés pour
mettre en oeuvre une politique de gestion des mots de passe.
Les fonctionnalités suivantes peuvent être mises en oeuvre :
• verrouillage de compte (et durée de verrouillage) au delà
d’un certain nombre d’échecs de tentative deconnexion ;
• durée de vie des mots de passe (avec éventuellement une
période de grâce) ;
• Non réutilisation d’un mot de passe avant un certain temps
ou avant un certain nombre de changements ;
• complexité du mot de passe.
2. Création d’un profil
L’ordre SQL CREATE PROFILE permet de créer un nouveau profil.Syntaxe
CREATE PROFILE nom LIMIT
[ SESSIONS_PER_USER valeur | UNLIMITED | DEFAULT ]
[ CPU_PER_SESSION valeur | UNLIMITED | DEFAULT ]
[ CPU_PER_CALL valeur | UNLIMITED | DEFAULT ]
[ CONNECT_TIME valeur | UNLIMITED | DEFAULT ]
[ IDLE_TIME valeur | UNLIMITED | DEFAULT ]
[ LOGICAL_READS_PER_SESSION valeur | UNLIMITED | DEFAULT ]
[ LOGICAL_READS_PER_CALL valeur | UNLIMITED | DEFAULT ]
[ COMPOSITE_LIMIT valeur | UNLIMITED | DEFAULT ]
[ PRIVATE_SGA valeur [K|M] | UNLIMITED | DEFAULT ]
[ FAILED_LOGIN_ATTEMPTS valeur | UNLIMITED | DEFAULT ]
[ PASSWORD_LIFE_TIME valeur | UNLIMITED | DEFAULT ]
[ PASSWORD_REUSE_TIME valeur | UNLIMITED | DEFAULT ]
[ PASSWORD_REUSE_MAX valeur | UNLIMITED | DEFAULT ]
[ PASSWORD_LOCK_TIME valeur | UNLIMITED | DEFAULT ]
[ PASSWORD_GRACE_TIME valeur | UNLIMITED | DEFAULT ]
[ PASSWORD_VERIFY_FUNCTION nom_fonction | NULL | DEFAULT ] ;
2. Création d’un profil (2)
Exemple :CREATE PROFILE exploitation LIMIT
SESSIONS_PER_USER 3
IDLE_TIME 30
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LIFE_TIME 30
PASSWORD_REUSE_TIME 180
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_GRACE_TIME 3
PASSWORD_VERIFY_FUNCTION verif_mdp_exploitation ;
Limitations de ressources Les limitations de ressources sont les suivantes :
SESSIONS_PER_USER Nombre de sessions simultanées.
CPU_PER_SESSION CPU totale par session (1/100 s).
CPU_PER_CALL CPU totale par appel (1/100 s).
CONNECT_TIME Durée totale de connexion (minutes).
IDLE_TIME Durée d’inactivité (minutes).
LOGICAL_READS_PER_SESSION Nombre de lectures logiques par session.
LOGICAL_READS_PER_CALL Nombre de lectures logiques par appel.
Limitations de ressources (2)
PRIVATE_SGA
Quantité de mémoire privée dans la SGA.
COMPOSITE_LIMIT
Somme pondérée de CPU_PER_SESSION ,CONNECT_TIME, LOGICAL_READS_PER_SESSION et PRIVATE_SGA.
Pour la limite COMPOSITE_LIMIT, la vue RESOURCE_COST permet de consulter les pondérations utilisées et l’ordre SQL ALTER RESOURCE COST de modifier les pondérations.
Limitations sur mots de passe
Les limitations relatives aux mots de passe sont les suivantes :
FAILED_LOGIN_ATTEMPTS
Nombre d’échecs de tentative de connexion autorisés avant verrouillage du compte, 10 dans le profil DEFAULT.
PASWORD_LOCK_TIME
Durée du verrouillage (jours), 1 dans le profil DEFAULT.PASSWORD_LIFE_TIME
Durée de vie du mot de passe (jours), 180 dans le profil DEFAULT.
PASSWORD_GRACE_TIME
Période de grâce après expiration du mot de passe (jours), 7 dans le profil DEFAULT.
Limitations sur mots de passe (2)
PASSWORD_REUSE_TIME
Nombre de jours pendant lequel un mot de passe ne peut pas être réutilisé.
PASSWORD_REUSE_MAX
Nombre de changements de mot de passe avant qu’un mot de passe puisse être réutilisé.
PASSWORD_VERIFY_FUNCTION
Fonction de vérification de la complexité du mot de passe.
Remarques
1. Les limites PASSWORD_REUSE_TIME et PASSWORD_REUSE_MAX ne peuvent pas être spécifiées simultanément : le contrôle de la réutilisation d’un mot de passe est indiqué soit par une durée, soit par un nombre de changements. Si l’une desdeux limites a une valeur (différente de UNLIMITED), l’autre limite doit être UNLIMITED.
2. Des mots clés peuvent être utilisés pour spécifier la valeur d’une limite :
l UNLIMITED : aucune limitation.l DEFAULT : le paramètre hérite de la valeur du profil nommé DEFAULT.
Une limite non spécifiée dans un profil prend la valeur DEFAULT .
Exemples
Modification du profil DEFAULTALTER PROFILE default LIMITSESSIONS_PER_USER 3IDLE_TIME 30FAILED_LOGIN_ATTEMPTS 5;-- les autres paramètres gardent la valeur par défaut (UNLIMITED)
Modification d’un autre profil
ALTER PROFILE exploitation LIMITSESSIONS_PER_USER 5 -- passe de 3 à 5IDLE_TIME UNLIMITED -- suppression de la limiteFAILED_LOGIN_ATTEMPTS DEFAULT; -- prend la valeur par défaut (5)-- le reste est inchangé
La modification d’un profil n’affecte les utilisateurs qu’à leur prochaine connexion ; elle n’est pas prise en compte immédiatement pour les utilisateurs déjà connectés.
4. Affectation d’un profil à un utilisateur
Un profil peut être attribué à un utilisateur :l lors de la création de l’utilisateur (CREATE USER) ;l lors d’une modification de l’utilisateur (ALTER USER).
Exemples :Lors de la création de l’utilisateurCREATE USER xgeo IDENTIFIED BY tempo
TEMPORARY TABLESPACE temp
PROFILE exploitation
PASSWORD EXPIRE;
4. Affectation d’un profil à un utilisateur (2)
Lors d’une modification de l’utilisateur
l Affectation d’un profil
ALTER USER u1 PROFILE
exploitation;
5. Activation de la limitation des ressourcesPar défaut, le contrôle de la limitation des ressources n’est pas activé. Créer des profils et les affecter aux utilisateursn’a aucun effet.Pour activer le contrôle de la limitation des ressources, il faut passer le paramètre RESOURCE_LIMIT à TRUE (FALSE par défaut) :
ALTER SYSTEM SET RESOURCE_LIMIT = TRUE [ clause_SCOPE ];
N’oubliez pas d’utiliser la clause SCOPE = BOTH pour rendre la modification persistante en cas de redémarrage de la base de données.Les fonctionnalités de gestion des mots de passe fonctionnent même si le paramètre RESOURCE_LIMIT est à FALSE.
6. Suppression d’un profil
L’ordre SQL DROP PROFILE permet de supprimer un profil.SyntaxeDROP PROFILE nom [ CASCADE ] ;
Exemple :DROP PROFILE exploitation CASCADE;
Si le profil est attribué à des utilisateurs, l’option CASCADE doit être présente. Si le profil est attribué à des utilisateurs et que l’option CASCADE soit absente, l’erreur ORA-02382 est retournée :
ORA-02382<: Le profil EXPLOITATION a des utilisateurs, impossible d’effectuer la suppression sans CASCADE
Le profil DEFAULT est affecté en remplacement aux utilisateurs concernés.La suppression d’un profil n’affecte les utilisateurs qu’à leur prochaine connexion. Le profil DEFAULT ne peut pas être supprimé.