Configurer Enterprise User Security avec des bases Oracle 11g Release 2

La configuration d’Enterprise User Security a changé avec la version 11.2 ; Enterprise Security Manager (ESM) a laissé la place à la console Enterprise Manager. Dans cet article, vous trouverez les étapes de cette configuration. En supposant, biensur que vous ayez configuré OID ou OVD en fonction de vos besoins…

Créer le fichier ldap.ora

La première étape de votre configuration consiste à créer le fichier ldap.ora pour déclarer votre annuaire OID ou OVD. Pour cela, la procédure officielle consiste à utiliser netca. Pour simplifier la configuration, vous pouvez également tout simplement créer le fichier ldap.ora manuellement ; voici un exemple qui se connecte au serveur red sur les ports 3060 (ldap) et 3131 (ldap/ssl) :

cd $ORACLE_HOME/ldap/admin
$ cat ldap.ora
DIRECTORY_SERVERS= (red:3060:3131)
DEFAULT_ADMIN_CONTEXT = "dc=arkzoyd,dc=fr"
DIRECTORY_SERVER_TYPE = OID

Enregistrer la base de données

Pour utiliser Enterprise User Security, il faut enregistrer vos bases de données dans l’annuaire ; Vous pouvez utiliser dbca à cet effet ; en mode silencieux, la commande ressemble à celle ci-dessous :

dbca -silent -configureDatabase -sourceDB WHITE 
-registerWithDirService true
-dirServiceUserName "cn=orcladmin"
-dirServicePassword "welcome1"
-walletPassword "welcome1"
Preparing to Configure Database
6% complete
13% complete
66% complete
Completing Database Configuration
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/WHITE/WHITE.log" for further details.

Note :
Le listener doit être configuré pour que la base soit enregistrée; si ce n’est pas le cas, vous verrez le message d’erreur suivant lorsque vous tentez d’enregistrer la base de données dans votre annuaire :

Créer un utilisateur générique dans la base de données cible

Une fois la base de données enregistrée dans votre annuaire, créez un utilisateur générique qui sera le propriétaire du schéma auquel les Enterprise Users lorsqu’ils se connecteront ; voici un exemple de création d’un tel utilisateur ;

create user global_ident_schema_user identified globally;

grant connect to global_ident_schema_user;

L’utilisateur créé, vous pouvez vous connecter à votre annuaire à l’aide d’un dbconsole ou d’un Grid Control Enterprise Manager 11g comme ci-dessous :

Vous pourrez alors configurer l’utilisateur de votre choix pour qu’il accéde à la base de données enregistrée avec le schéma correspondant et créé dans l’étape précédente :

Une fois l’utilisateur créé, vous pourrez vous connecter puisque l’utilisateur géérique a accès au role CONNECT et donc ou privilège CREATE SESSION.

Créer un rôle dans la base de données

Vous pouvez également créer des rôles au niveau de l’annuaire dit « Enterprise Roles »; pour celà et comme pour les utilisateurs, créer un role technique dans la base de données avant de créer la correspondance dans votre annuaire :

create role eusadmin identified globally;
grant dba to eusadmin;

Dans notre cas, nous donnerons le role DBA aux utilisateurs ayant le role correspondant à ESUADMIN. Comme pour les utilisateurs, vous pouvez créer le role « Enterprise » depuis la console Enterprise Manager comme ceci :

Vous pouvez ensuite affectuer le role à votre utilisateur depuis la console :

Se connecter avec un client

Voilà, vous pouvez vous connecter avez SQL*Plus par exemple et vérifier votre identité ; remarquez que vous êtes bien DBA :

sqlplus orcladmin

select role
from session_roles
where role='DBA';

ROLE
--------
DBA

SELECT sys_context('USERENV', 'AUTHENTICATED_IDENTITY') "USER"
   FROM dual;

USER
---------
ORCLADMIN


SELECT sys_context('USERENV', 'ENTERPRISE_IDENTITY') "USER"
  FROM dual;

USER
----------------------------------------
cn=orcladmin,cn=Users,dc=arkzoyd,dc=fr

Ajouter des outils

Vous pouvez ensuite créer des outils simples pour superviser les accès ; voici un premier exemple que vous enrichirez en fonction de vos besoins :

drop table eus$session purge;

create table system.eus$session(
audsid number,
enterprise_identity varchar2(80)
) tablespace sysaux;

create public synonym eus$session
for system.eus$session;

create or replace trigger system.eus$session
after logon on database
declare
v_program varchar2(48);
v_sid number;
v_serial# number;
begin
if (sys_context('USERENV', 'ENTERPRISE_IDENTITY') is not null) then
insert into system.eus$session (audsid, enterprise_identity)
values (sys_context('USERENV','SESSIONID'),
sys_context('USERENV', 'ENTERPRISE_IDENTITY'));
commit;
end if;
end;
/

Voilà, c’est vraiment aussi simple que ça ! Si vous cherchez à en savoir plus lisez le manuel de référence EUS ainsi que les documentation OID et OVD : « Oracle® Database Enterprise User Security Administrator’s Guide 11g Release 2 (11.2)« 

1 réflexion sur “Configurer Enterprise User Security avec des bases Oracle 11g Release 2”

Les commentaires sont fermés.