Le catalogue privé virtuel
Travailler avec plusieurs bases de données catalogue multiplie les risques d’erreurs et le temps de maintenance des catalogues. Il est fortement conseillé de travailler avec un catalogue unique qui englobe l’ensemble des bases de données de votre système d’informations, car vous aurez un seul schéma à sauvegarder d’une seule base. Toutefois du point de vue de la sécurité, les opérateurs qui sauvegardent certaines bases de données ne doivent pas pouvoir sauvegarder d’autres bases plus sensibles.
Il est possible de mettre en place des catalogues privés virtuels qui permettent de filtrer l’accès aux seules bases de données pour lesquelles le propriétaire a reçu les privilèges. La démarche de mise en œuvre d’un catalogue privé virtuel est la suivante :
La création de l’utilisateur propriétaire du catalogue privé virtuel. Il doit avoir le privilège « RECOVERY_CATALOG_OWNER » comme un propriétaire du catalogue classique.
L’octroi des privilèges pour le propriétaire du catalogue privé virtuel, de sauvegarder les bases de données enregistrées dans le catalogue principal.
L’octroi des privilèges d’enregistrer une base de données non enregistrée dans le catalogue principal. Le catalogue privé virtuel n’est pas un catalogue à part entière, il est seulement une vue sur le catalogue principal. Ainsi les bases de donnée insérées sont directement enregistrées dans le catalogue principal.
La création du catalogue privé virtuel.
La syntaxe pour accorder le privilège de sauvegarde ou d’enregistrement dans le catalogue privé virtuel est :
GRANT { CATALOG FOR DATABASE {['] db_name ['] | dbid }
| REGISTER DATABASE } TO utilisateur ;
D:\>rman target sys/Razvanpwd3@topaze catalog rman/rman@topaze
connecté à la base de données cible : TOPAZE (DBID=2755728057)
connecté à la base de données du catalogue de récupération
RMAN> list db_unique_name all;
Liste des bases de données
DB Key DB Name DB ID Database Role Db_unique_name
------- ------- ----------------- --------------- --------------
1362 SODALITE 420436416 PRIMARY SODALITE
18462 PIERRES 807186735 PRIMARY PIERRES
603 JADE 883750607 PRIMARY JADE
18861 GEMMES 1022042757 PRIMARY GEMMES
884 AGATE 1022786265 PRIMARY AGATE
1121 RUBIS 1772371706 PRIMARY RUBIS
962 ONYX 2741237436 PRIMARY ONYX
1431 TOPAZE 2755728057 PRIMARY TOPAZE
1232 SAPHIR 2892504293 PRIMARY SAPHIR
RMAN> grant recovery_catalog_owner to cpv_cronos identified by rman;
RMAN> grant catalog for database agate to cpv_cronos;
RMAN> grant catalog for database onyx to cpv_cronos;
RMAN> grant recovery_catalog_owner to cpv_jade identified by rman;
RMAN> grant catalog for database jade to cpv_jade;
RMAN> grant recovery_catalog_owner to cpv_pierres identified by rman;
RMAN> grant catalog for database pierres to cpv_pierres;
RMAN> grant recovery_catalog_owner to cpv_gemmes identified by rman;
RMAN> grant catalog for database gemmes to cpv_gemmes;
RMAN> grant recovery_catalog_owner to cpv_terra identified by rman;
RMAN> grant catalog for database sodalite to cpv_terra;
RMAN> grant catalog for database topaze to cpv_terra;
RMAN> grant recovery_catalog_owner to cpv_saturne identified by rman;
RMAN> grant catalog for database rubis to cpv_saturne;
RMAN> grant catalog for database saphir to cpv_saturne;
RMAN> exit;
D:\>rman catalog cpv_cronos/rman@topaze
RMAN> create virtual catalog;
RMAN> list db_unique_name all;
Liste des bases de données
DB Key DB Name DB ID Database Role Db_unique_name
------- ------- ----------------- --------------- ------------------
884 AGATE 1022786265 PRIMARY AGATE
962 ONYX 2741237436 PRIMARY ONYX
RMAN> exit;
D:\>rman catalog cpv_jade/rman@topaze
RMAN> create virtual catalog;
RMAN> list db_unique_name all;
Liste des bases de données
DB Key DB Name DB ID Database Role Db_unique_name
------- ------- ----------------- --------------- ------------------
603 JADE 883750607 PRIMARY JADE
RMAN> exit;
D:\>rman catalog cpv_pierres/rman@topaze
RMAN> create virtual catalog;
RMAN> list db_unique_name all;
Liste des bases de données
DB Key DB Name DB ID Database Role Db_unique_name
------- ------- ----------------- --------------- ------------------
18462 PIERRES 807186735 PRIMARY PIERRES
RMAN> exit;
D:\>rman catalog cpv_gemmes/rman@topaze
RMAN> create virtual catalog;
RMAN> list db_unique_name all;
Liste des bases de données
DB Key DB Name DB ID Database Role Db_unique_name
------- ------- ----------------- --------------- ------------------
18861 GEMMES 1022042757 PRIMARY GEMMES
RMAN> exit;
D:\>rman catalog cpv_terra/rman@topaze
RMAN> create virtual catalog;
RMAN> list db_unique_name all;
Liste des bases de données
DB Key DB Name DB ID Database Role Db_unique_name
------- ------- ----------------- --------------- ------------------
1362 SODALITE 420436416 PRIMARY SODALITE
1431 TOPAZE 2755728057 PRIMARY TOPAZE
RMAN> exit;
D:\>rman catalog cpv_saturne/rman@topaze
RMAN> create virtual catalog;
RMAN> list db_unique_name all;
Liste des bases de données
DB Key DB Name DB ID Database Role Db_unique_name
------- ------- ----------------- --------------- ------------------
1121 RUBIS 1772371706 PRIMARY RUBIS
1232 SAPHIR 2892504293 PRIMARY SAPHIR
RMAN> connect target sys/Razvanpwd3@topaze
connecté à la base de données cible : TOPAZE (DBID=2755728057)
RMAN> backup database;
Démarrage de backup dans 18/03/14
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: échec de la commande backup à 03/18/2014 16:59:42
RMAN-03014: échec de la resynchronisation implicite du catalogue de récupération
RMAN-06004: erreur ORACLE de la base de données du catalogue de récupération : RMAN-20001: target database not found in recovery catalog
RMAN> exit;
D:\>rman catalog cpv_saturne/rman@topaze target sys/Razvanpwd3@rubis
connecté à la base de données cible : RUBIS (DBID=1772371706)
connecté à la base de données du catalogue de récupération
RMAN> backup database;
...
La connexion à la base de données cible est accepte tant que vous avez les privilèges nécessaires pour créer une session. La sauvegarde n’est autorisée que si le catalogue privé virtuel à les privilèges des sauvegarde pour cette base de données.