默认情况下,recovery catalog的用户可以对所有的metadata进行操作,当catalog数据库管理多个独立数据库时,会增加管理风险。
从11g,oracle开始开始支持virtual catalogs,每个virtual catalogs分属一个schema,相互之间不可见。
创建一个virtual catalogs后,管理员可以将一个或多个数据库的管理权限赋予它,每个virtual catalogs可访问所有的global scripts。
Virtual catalog的创建大致可分为两步:
1创建一个schema
CREATE USER vpc1 IDENTIFIED BY password DEFAULT TABLESPACE vpcusers QUOTA UNLIMITED ON vpcusers;
GRANT recovery_catalog_owner TO vpc1;
以管理员帐户连接catalog
RMAN> CONNECT CATALOG catowner@catdb;将对应数据库的管理权限赋给该schema
RMAN> GRANT CATALOG FOR DATABASE prod1 TO vpc1;RMAN> GRANT CATALOG FOR DATABASE prod2 TO vpc1;
2创建对应的virtual catalog
RMAN> CONNECT CATALOG vpc1@catdb RMAN> CREATE VIRTUAL CATALOG;
如果想在10.2或更早的版本中使用,则还需调用以下API
新建的VPC1只能操作prod1和prod2,对其他数据库则无视。
可以通过revoke回收其权限。
如何drop virtual catalog
登录catalog
RMAN> CONNECT CATALOG vpc1@catdb;
如果是11g,则直接drop catalog;若是10g或更早,则需要执行 EXECUTE base_catalog_owner.DBMS_RCVCAT.DELETE_VIRTUAL_CATALOG;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15480802/viewspace-719047/ ,如需转载,请注明出处,否则将追究法律责任。