在oracle 11g之前版本中,如果用户只是需要访问recovery catalog 中的某个数据库,但是我们却只能将整个recovery catalog授权给他,无法做到严格限制。
现在,virtual private cataglog提供了严格的访问权限控制,使得用户可以只是访问catalog中的部分数据库。 virtual private cataglog也叫做virtual catalog。 可以为一个用户或者多个用户创建virtual catalog。这时,整个集中化的catalog被称作base catalog。
oracle建议将所有的catalog合并到一个集中化的base catalog,然后为不同用户创建virtual catalog。virtual catalog不是以一个单独的实体存在的,只是base catalog上的建立一些列同义词和视图。base catalog的拥有者必须将virtual catalog的权限授权给其他用户。
创建一个virtual catalog
1.创建virtual catalog的拥有者
SQL> connect sys/<passwd> as sysdba SQL> create user virtual01 identified by virtual01 temporary tablespace temp default tablespace vp_users quota unlimited on vp_users;
2.给新建的用户授权
SQL> grant recovery_catalog_owner to virtual01;
3.以base recovery catalog的用户登录rman客户端,给virtual catalog的用户授权
$ rman RMAN> connect catalog rman11/rman11@rman11; RMAN> grant register database to virtual01; RMAN> grant catalog for database test1,test2 to virtual01;
virtual catalog owner只能创建本地存储脚本,不能创建全局脚本。但是vuirtual catalog owner能够只读全局存储脚本
4.以virtual catalog owner身份登录创建virtua catalog
RMAN> connect catalog virtual11/virtual11@rman11 RMAN> create virtual catalog;