Every RMAN recovery catalog starting with Oracle Database 11g supports virtual private catalogs, but they are not used unless explicitly created. There is no restriction to the number of virtual private catalogs that can be created beneath one recovery catalog. Each virtual private catalog is owned by a database schema user which is different than the user who owns the recovery catalog.

After you set up a virtual private catalog user, the administrator for the recovery catalog grants each virtual private catalog the privilege to use that catalog for one or more databases that are currently registered in the recovery catalog. The administrator of the recovery catalog can also grant the privilege to register new databases while using a virtual private catalog.

Creating and Managing Virtual Private Catalogs with Oracle Database 12c Release 1 (12.1.0.2)

This section assumes that you created the base recovery catalog.

Assume that the following databases are registered in the base recovery catalog: prod1, prod2, and prod3. The database user who owns the base recovery catalog is rco. You want to create database user vpc1 and grant this user access privileges only to prod1 and prod2. Next, you want to connect to the virtual private catalog owned by vpc1, register the database prod1 with the virtual private catalog, and store backup metadata for prod1 in the virtual private catalog.

To create and grant privileges to a virtual private catalog owner:

1.Start SQL*Plus and connect to the recovery catalog database with administrator privileges.

2.Create the user who will own the virtual private catalog.
E.G. if you want database user vpc1 to own the virtual private catalog, then execute the following command (replacing password with a user-defined password):
SQL> CREATE USER vpc1 IDENTIFIED BY password DEFAULT TABLESPACE vpcusers QUOTA UNLIMITED ON vpcusers;

3.Grant the CREATE SESSION privilege to the user and then exit SQL*Plus.
The following example grants the CREATE SESSION privilege to user vpc1:
SQL> GRANT CREATE SESSION TO vpc1;

4.Start RMAN and connect to the recovery catalog database as the base recovery catalog owner (not the virtual private catalog owner).
The following example connects to the base recovery catalog as rco:
RMAN> CONNECT CATALOG rco@catdb;

5.Grant desired privileges to the virtual private catalog owner.
The following example grants user vpc1 access to the metadata for prod1 and prod2 (but not prod3):
RMAN> GRANT CATALOG FOR DATABASE prod1 TO vpc1;
RMAN> GRANT CATALOG FOR DATABASE prod2 TO vpc1;

You can also use a DBID instead of a database name. The virtual private catalog user does not have access to the metadata for any other databases registered in the recovery catalog.

You can also grant the user the ability to register new target databases in the recovery catalog. For example:
RMAN> GRANT REGISTER DATABASE TO vpc1;

To register a database with a virtual private catalog and store backup metadata:

1.Start RMAN and connect to the recovery catalog database as the virtual private catalog owner (not the base recovery catalog owner). Connect to the database that you want to register as TARGET.
RMAN> CONNECT TARGET /
RMAN> CONNECT CATALOG vpc1@catdb;

2.Register the database whose metadata must be stored in the virtual private catalog.
The following example registers the database with the virtual private catalog owner vpc1.
RMAN> REGISTER DATABASE;

3.Back up the database using the BACKUP command with the required clauses.
Metadata related to the backup is stored in the virtual private catalog.