Vous êtes sur la page 1sur 105

Systèmes de gestion de base de

données SGBD

Oracle 10g

Systèmes de gestion de base de données SGBD Oracle 10g

PLAN

Pourquoi un SGBD ?

Architecture du SGBD oracle

Construire une base de données sous Oracle

Administrer une base de données

? • Architecture du SGBD oracle • Construire une base de données sous Oracle • Administrer
Pourquoi un SGBD ? • Indépendance physique: Plus besoin de travailler directement sur les fichiers

Pourquoi un SGBD ?

Pourquoi un SGBD ? • Indépendance physique: Plus besoin de travailler directement sur les fichiers physiques

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

Pourquoi un SGBD (2) ? • Efficacité des accès aux données : doit permettre d’obtenir

Pourquoi un SGBD (2) ?

Pourquoi un SGBD (2) ? • Efficacité des accès aux données : doit permettre d’obtenir des

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 (3) ? • Non redondance des données : Afin d’éviter les problèmes

Pourquoi un SGBD (3) ?

Pourquoi un SGBD (3) ? • Non redondance des données : Afin d’éviter les problèmes lors

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 (4) ? • Sécurité des données : Données protégées contre accès non

Pourquoi un SGBD (4) ?

Pourquoi un SGBD (4) ? • Sécurité des données : Données protégées contre accès non autorisés

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

Architecture à trois niveaux : ANSI/SPARC

Architecture à trois niveaux : ANSI/SPARC
Architecture à trois niveaux : ANSI/SPARC

Architecture générale Oracle

Architecture générale Oracle

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

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.

Architecture logique

Architecture logique

Architecture logique

Architecture logique

(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;

Les tablespace font le lien entre les objets et la structure physique de la base de données :

• Les tablespace font le lien entre les objets et la structure physique de la base

Tablespaces ( v$tablespace)

Tablespaces ( v$tablespace)

SYSTEM tablespace

SYSTEM a tablespace that is always used to store SYSTEM data that includes data about tables, indexes, sequences, and other objects this metadata comprises the data

dictionary.

Every Oracle database has to have a SYSTEM tablespaceit 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 donea good rule to follow is to never allow

allow the storage of user segments in the SYSTEM tablespace.

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 tablespaces

UNDO 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 tablespaces

TEMP tablespace :

Un tablespace temporaire est un tablespace

spé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 tablespace

La 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 tablespace

name.

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 tablespace to 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' AUTOEXTEND ON;

SIZE 5M

Exemple création tablespace UNDO :

CREATE UNDO TABLESPACE tbs_undo_01 DATAFILE

'tbs_undo_01.f'

SIZE 5M

RETENTION GUARANTEE;

AUTOEXTEND ON

Alter tablespace

Alter tablespace
Par exemple , chaque table de donnée est stockée dans son propre segment de données

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.

Architecture physique Oracle

Architecture physique Oracle

Structure physique d’une BD (1)

Structure physique d’une BD (1)

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

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.

Gestion des utilisateurs, profils et

ressources

Gestion des utilisateurs, profils et ressources

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

Créer et modifier les utilisateurs

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’exploitation

SQL> 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 se

connecter, 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 } ] ;

Exemples

l 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 quotas ALTER USER u1 DEFAULT TABLESPACE test QUOTA UNLIMITED ON test QUOTA 10M ON data;

l Verrouillage d’un compte ALTER USER u1 ACCOUNT LOCK;

l Déverrouillage d’un compte

ALTER 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.

Les profils

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 Database

Buffer 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 } ]

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

nommé DEFAULT.

: le paramètre hérite de la valeur du profil

3. Modification d’un profil

Syntaxe

ALTER PROFILE nom LIMIT

Exemples

Modification du profil DEFAULT ALTER PROFILE default LIMIT SESSIONS_PER_USER 3

IDLE_TIME 30

FAILED_LOGIN_ATTEMPTS 5; -- les autres paramètres gardent la valeur par défaut (UNLIMITED)

Modification d’un autre profil ALTER PROFILE exploitation LIMIT SESSIONS_PER_USER 5 -- passe de 3 à 5

IDLE_TIME UNLIMITED -- suppression de la limite FAILED_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’utilisateur CREATE 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 ressources

Par 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. Syntaxe DROP 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é.

7. Trouver des informations sur les

profils

Plusieurs vues du dictionnaire de données

permettent d’obtenir des informations sur les profils :

l DBA_USERS

utilisateurs, dont le profil attribué (colonne PROFILE) ;

l DBA_PROFILES

profils.

: informations sur les

: informations sur les