DBA
Connexion et modification de mot de passe
sqlplus /nolog
connect / as sysdba;
alter user system identified by esprit;
connect system/esprit; show user;Nom du destinataire
show user;
Création du tablespace TBLTW
create tablespace tbltw datafile 'C:\oraclexe\app\oracle\oradata\XE\FD01TW.ora'
size 30m, 'C:\oraclexe\app\oracle\oradata\XE\FD02TW.ora' size 20m;
Si erreur : DROP TABLESPACE tbtw INCLUDING CONTENTS AND DATAFILES;
Utilisation des vues DBA_TABLESPACES et DBA_DATA_FILES
Description des tablespaces : desc dba_tablespaces;
Sélectionner les tablespaces : select TABLESPACE_NAME, CONTENTS, ALLOCATION_TYPE
from dba_tablespaces order by TABLESPACE_NAME ;
Afficher les fichiers du tablespace TBLTW :
select file_name, BYTES/1024/1024 from dba_data_files where
TABLESPACE_NAME = 'TBLTW';
Ajout d'un fichier à TBLTW
alter tablespace tbltw add datafile
'C:\oraclexe\app\oracle\oradata\XE\FD03TW.ora' size 50m autoextend on next 10m
maxsize 500m;
Vérification : select file_name, BYTES/1024/1024, AUTOEXTENSIBLE, INCREMENT_BY,
MAXBYTES from dba_data_files where TABLESPACE_NAME = 'TBLTW';
Création d'un utilisateur
CREATE USER usertw IDENTIFIED BY esprit DEFAULT TABLESPACE tbltw TEMPORARY
TABLESPACE temp;
Gestion des utilisateurs
Afficher tous les utilisateurs : select username, created, account_status from
dba_users order by username;
Déverrouiller/Verrouiller un compte :
alter user HR account unlock;
alter user HR account lock;
Expiration/Modification de mot de passe :
alter user HR password expire;
Nom du destinataire
Date
Page 2
alter user hr identified by hr;
Attribution de privilèges
Créer une session et une table :
grant create session to usertw;
grant create table to usertw;
Donner un quota :
alter user usertw quota 10m on tbltw;
Droit de lecture pour un autre utilisateur : grant select on tt to testuser2;
Informations sur la base de données
Taille du bloc de stockage : show parameter db_block_size;
Afficher les tables de l'utilisateur : select table_name from user_tables;
Afficher toutes les tables créées par les utilisateurs SYSTEM ou SYS :select owner,
TABLE_NAME from dba_tables order by owner;
Création de la table TW_TAB
create table TW_TAB (id number, nom varchar2(50)) tablespace TBLTW;
Affichage des segments
select extents, BYTES, BLOCKS from user_segments where SEGMENT_NAME = 'TW_TAB';
select extents, BYTES, BLOCKS from user_segments where owner = 'USRTW' and
SEGMENT_NAME = 'TW_TAB';
Calcul de la taille occupée par TW_TAB
select 60 * count(*) from tw_tab;
select bytes * 8192 from user_segments where segment_NAME = 'TW_TAB';
select (60 * count(*) from tw_tab) / (select bytes * 8192 from user_segments
where segment_name = 'TW_TAB') * 100 as c_taux from dual;
Gestion des paramètres d'initialisation
Créer un fichier spfile à partir de pfile : create spfile from pfile;
Afficher la valeur d’un paramètre spécifique (resource_limit) : show parameter
resource_limit;
Afficher la taille d’un bloc de la base de données : show parameter db_block_size;
Description de la vue des paramètres (V$parameter) : desc V$parameter;
Sélectionner des informations sur les paramètres :select substr(name,1,15) c_name,
type, substr(value,1,15) c_valeur, issys_modifiable from V$parameter order
by name;
Nom du destinataire
Date
Page 3
Modifier la valeur du paramètre resource_limit : alter system set resource_limit =
true;
Commentaires sur la vue DBA_TABLES :
select comments from dictionary where table_name = 'DBA_TABLES';
Modifier la taille du cache de la base de données :
alter system set db_cache_size = 7000000 scope = memory;
Afficher la taille du SGA et du PGA :
select name from v$parameter where lower(name) like '%sga%';
show parameter sga_max_size;
show parameter pga_aggregate_target;
Démarrage et arrêt de la base de données
Activer la session restreinte : alter system enable restricted session; -- ou
STARTUP RESTRICT
grant restricted session to usertw;
Arrêter une session :
select SID, SERIAL#, substr(USERNAME,1,10), substr(program,1,12), action
from v$session
order by username;
alter system kill session '157,20';
Gestion des profils, rôles, et privilèges système :
Gestion des privilèges
grant create table to usertw9 with admin option;
grant create table to usertw;
Nom du destinataire
Date
Page 4
revoke create table from usertw9;
Lister les comptes avec le privilège create table :
select grantee from dba_sys_privs where privilege = 'create_table' order by
grantee;
revoke create table from usertw, usertw9;
update hr.employees set salary = salary * 1.1 where employee_id = 200;
Accorder à usertw9 le droit de mise à jour des salaires (colonne SALARY dans HR.EMPLOYEES) :
grant update(salary) on employees to usertw9 with grant option;
grant update(salary) on hr.employees to usrtw;
Révoquer le droit de mise à jour de usertw9 :
revoke update on hr.employees from usertw9;
Afficher les privilèges système de l'utilisateur HR :
select * from dba_sys_privs where grantee = 'HR';
Afficher les privilèges d'objet sur les tables de HR :
select owner, table_name, privilege, grantable from dba_tab_privs where grantee
= 'HR';
Afficher les privilèges d'objet sur les colonnes de HR :
select owner, table_name, COLUMN_NAME, privilege, grantable from dba_tab_privs
where grantee = 'HR';
Gestion des rôles
Créer un rôle myrole : create role myrole;
Accorder des privilèges au rôle myrole :
grant create session, create table, create procedure, create view, create
trigger to myrole;
Vérifier les privilèges associés à myrole :
select * from dba_sys_privs where grantee = 'MYROLE';
Nom du destinataire
Date
Page 5
Accorder à myrole l'accès en lecture à HR.EMPLOYEES :
grant select on employees to myrole;
Vérifier les privilèges d'objet du rôle myrole :
select owner, table_name, privilege from dba_tab_privs where grantee = 'MYROLE';
Afficher tous les rôles créés :
select role from dba_roles order by role;
Créer un utilisateur test et lui accorder le rôle myrole :
create user test identified by esprit default tablespace tbl09 quota 10m on
tbl09;
grant myrole to test;
Test de création d'une vue avec test :
create any view v_emp_dept10 as select * from hr.employees where department_id =
10;
Afficher les rôles affectés aux comptes HR et SYSTEM :
select GRANTEE, GRANTED_ROLE, ADMIN_OPTION
from dba_role_privs
where grantee in ('HR', 'SYSTEM')
order by grantee;
Gestion des profils
Créer un profil myprofile avec des limites de temps :
create profile myprofile limit connect_time 10 idle_time 3 sessions_per_user 2;
alter user usertw9 profile myprofile;
Supprimer un profil : drop profile myprofile cascade;
Vérification des limites d'un profil :select resource_name, limit from dba_profiles
where profile = 'MYPROFILE' and limit <> 'DEFAULT';
Désactiver un profil pour un utilisateur : alter user usertw9 profile default;
Nom du destinataire
Date
Page 6
Ajouter une limite de tentatives de connexion échouées pour un profil :alter profile
myprofile limit failed_login_attempts 2;
Ajout d'une fonction de vérification de mot de passe : connect sys/esprit as sysdba;
@ 'C:\Users\blade\OneDrive\Bureau\4emetwin\semestre 1\DBA\cours\fs_verify_pwd.sql';
Afficher toutes les fonctions créées aujourd'hui :
SELECT object_name FROM all_objects WHERE object_type = 'FUNCTION' AND
trunc(created) = trunc(SYSDATE);
Modification du profil pour inclure la fonction de vérification de mot de passe :
alter profile myprofile limit PASSWORD_VERIFY_FUNCTION fs_verify_pwd;
Expiration du mot de passe d'un utilisateur : alter user usertw9 password expire;
Suppression de la fonction de vérification de mot de passe : drop function fs_verify_pwd;
Remettre la fonction par défaut :
ALTER PROFILE myprofile LIMIT PASSWORD_VERIFY_FUNCTION DEFAULT;
5. Sélection des tables d'un utilisateur
SELECT table_name FROM all_tables WHERE owner = 'HR';
1. Paramètre audit_trail
Afficher le paramètre audit_trail : show parameter audit_trail;
Modifier le paramètre audit_trail pour activer l'audit au niveau de la base de données avec des détails
étendus : alter system set audit_trail = db, extended scope = spfile;
Démarrer la base de données avec le compte sys : startup force open;
2. Audit ciblé sur les opérations
Auditer les opérations UPDATE réussies sur la table HR.EMPLOYEES :
AUDIT UPDATE ON HR.EMPLOYEES whenever successful;
Auditer les opérations UPDATE par accès réussies sur la table HR.EMPLOYEES :
AUDIT UPDATE ON HR.EMPLOYEES by access whenever successful;
Nom du destinataire
Date
Page 7
Auditer les opérations DELETE non réussies sur la table HR.EMPLOYEES :
AUDIT DELETE ON HR.EMPLOYEES by session whenever not successful;
3. Vérification des options d'audit
Vérifier les options d'audit sur la table EMPLOYEES :
select alt, cre, upd, del from dba_obj_audit_opts where object_name =
'EMPLOYEES' and owner = 'HR';
4. Désactiver l'audit
Arrêter l'audit sur toutes les opérations de la table HR.EMPLOYEES :
noaudit all on hr.employees;
Vérifier si l'audit a été désactivé :select object_name, alt, cre, upd, del from
dba_obj_audit_opts where owner = 'HR';
5. Audit des privilèges
Auditer l'utilisation du privilège CREATE TABLE par HR :
audit create table by hr whenever successful;
Auditer les opérations de sélection sur n'importe quelle table par HR :
audit select any table by HR by session;
6. Vérification des audits de privilèges
Vérifier les options d'audit des privilèges pour HR : SELECT privilege, success, failure
FROM DBA_PRIV_AUDIT_OPTS WHERE user_name = 'HR';
Vérifier les options d'audit d'objet sur la table EMPLOYEES :select alt, ce, upd, del from
dba_obj_audit_opts where object_name = 'EMPLOYEES' and owner = 'HR';