用途
GRANTコマンドを使用すると、仮想プライベート・カタログ・スキーマに対する権限をデータベース・ユーザーに割り当てることができます。デフォルトでは、仮想カタログのユーザーはベース・リカバリ・カタログにアクセスできません。
前提条件
このコマンドは、RMANプロンプトで実行してください。
CREATE CATALOGを使用してベース・リカバリ・カタログが作成されていなければ、GRANTで仮想プライベート・カタログの権限を割り当てることはできません。
使用上の注意
ベース・リカバリ・カタログを作成し、そこにすべてのデータベースのメタデータを格納することをお薦めします。その後に、仮想プライベート・カタログ・スキーマを所有するOracle Databaseユーザーを作成できます。仮想プライベート・カタログのユーザーは、RECOVERY_CATALOG_OWNERロールを付与されている必要があります。
RMANをベース・リカバリ・カタログに接続し、GRANTコマンドを使用して、リカバリ・カタログ権限を仮想カタログの所有者に割り当てます。その後、CREATE VIRTUAL CATALOGを実行して、このユーザーの仮想カタログ・スキーマを作成します。REVOKEを使用すると、カタログ権限を取り消すことができます。
同じデータベース上でCATALOG権限を持つユーザー間の関係
ここで、GRANTの使用方法を説明します。データベースprod1およびprod2が、ベース・リカバリ・カタログに登録されているとします。ベース・リカバリ・カタログにSYSとしてログインしている状態で、仮想プライベート・カタログの2人のユーザー(vpc1およびvpc2)を作成します。この両方のユーザーに、データベースprod1に対するCATALOG FOR DATABASEアクセス権を付与します(prod2については付与しません)。
この例では、ベース・リカバリ・カタログの所有者によって作成されたprod1のバックアップのメタデータには、vpc1とvpc2の両方がアクセスできます。相互に作成したprod1のバックアップのメタデータには、両方のユーザーがアクセスできます。データベースprod2のバックアップ・メタデータには、vpc1とvpc2の両方ともアクセスできません。
GRANT REGISTERとGRANT CATALOG間の関係
REGISTER DATABASEをユーザーに付与すると、RMANでは、このユーザーが登録したすべてのデータベースに対して暗黙的にリカバリのCATALOG FOR DATABASE権限が付与されます。あるユーザー(virtcatなど)のREGISTER DATABASE権限のみに対してREVOKEを実行した場合、virtcatが登録したデータベース(prodなど)のCATALOG FOR DATABASE権限が暗黙的に取り消されることはありません。CATALOG FOR DATABASE権限にはprodの登録権限が含まれているため、virtcatは、prodの登録解除と登録を継続できます。virtcatがprodに対して操作(再登録など)を実行しないようにするには、virtcatに対してREVOKE ALL PRIVILEGESを実行します。
セマンティクス
| 構文要素 | 説明 |
|---|---|
CATALOG FOR DATABASE[database_name | integer]TO userid |
指定したデータベースのリカバリ・カタログへのアクセス権を指定したユーザーに付与します。
注意: 指定したデータベースで付与されるカタログ操作には、そのデータベースの登録と登録解除が含まれます。 データベースは、データベース名またはDBIDで指定します。名前を指定したとき、その名前のデータベースがカタログに複数登録されていると、RMANによりエラーが戻されます。その場合は、DBIDでデータベースを指定してください。 リカバリ・カタログに登録済のデータベースへのアクセス権を付与するには、 |
REGISTER DATABASETO userid |
指定したユーザーに、リカバリ・カタログで現在認識されていないデータベースをREGISTER DATABASEで登録する権限を付与します。
たとえば、ユーザー |
例2-89 仮想プライベート・カタログの権限の付与
データベース・ユーザーrcoがデータベースcatdbにベース・リカバリ・カタログを所有しているとします。このベース・リカバリ・カタログには、データ・センター内の数多くのデータベースのRMANメタデータが格納されています。目標は、データ・センターの2人のバックアップ・オペレータのために、仮想プライベート・カタログを作成することです。
SQL*Plusを起動し、SYSとしてcatdbデータベースに接続します。次に、CREATE USER文を使用して、catdb上にbckop2およびbckop3ユーザーを作成します。次のように、リカバリ・カタログの所有権をこれらのユーザーに付与できます。
SQL> GRANT recovery_catalog_owner TO bckop2, bckop3; SQL> EXIT
次に、RMANクライアントを起動し、ユーザーrcoとしてリカバリ・カタログ・データベースに接続します。RMANのGRANTコマンドを使用して、bckop2に、自分の仮想プライベート・カタログにすべてのデータベースを登録する権限を与えます。ただし、bckop3には、データ・センター内のデータベースのサブセットのみへのアクセス権を与えます。
RMAN> CONNECT CATALOG rco@catdb
recovery catalog database Password: password
connected to recovery catalog database
RMAN> GRANT REGISTER DATABASE TO bckop2;
RMAN> GRANT CATALOG FOR DATABASE prod TO bckop3;
RMAN> GRANT CATALOG FOR DATABASE prodb TO bckop3;
RMAN> EXIT;
新しいRMANセッションを開始し、bckop2の仮想カタログを作成します(例には、CREATE VIRTUAL CATALOGの出力例も含まれます)。仮想カタログを作成するたびに、RMANを終了して再起動する必要があります。
RMAN> CONNECT CATALOG bckop2@catdb
recovery catalog database Password: password
connected to recovery catalog database
RMAN> CREATE VIRTUAL CATALOG;
found eligible base catalog owned by RCO
created virtual catalog against base catalog owned by RCO
RMAN> EXIT;
新しいRMANセッションを開始し、bckop3の仮想カタログを作成します(例には、CREATE VIRTUAL CATALOGの出力例も含まれます)。
RMAN> CONNECT CATALOG bckop3@catdb
recovery catalog database Password: password
connected to recovery catalog database
RMAN> CREATE VIRTUAL CATALOG;
found eligible base catalog owned by RCO
created virtual catalog against base catalog owned by RCO
RMAN> EXIT;
次の例では、バックアップ・オペレータdba1が、catdbのbckop3スキーマにある自分の仮想プライベート・カタログを使用して、ターゲット・データベースのバックアップのメタデータを格納します。
RMAN> CONNECT TARGET /
RMAN> CONNECT CATALOG bckop3@catdb
recovery catalog database Password: password
connected to recovery catalog database
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;