用途
GRANTコマンドを使用すると、仮想プライベート・カタログ・スキーマに対する権限をデータベース・ユーザーに割り当てることができます。デフォルトでは、仮想カタログのユーザーはベース・リカバリ・カタログにアクセスできません。
前提条件
このコマンドは、RMANプロンプトで実行してください。
CREATE CATALOGを使用してベース・リカバリ・カタログが作成されていなければ、GRANTで仮想プライベート・カタログの権限を割り当てることはできません。
使用上の注意
ベース・リカバリ・カタログを作成し、そこにすべてのデータベースのメタデータを格納することをお薦めします。その後に、仮想プライベート・カタログ・スキーマを所有するOracle Databaseユーザーを作成できます。Oracle Database 12cリリース1 (12.1.0.1)では、仮想プライベート・カタログ・ユーザーはRECOVERY_CATALOG_OWNERロールを付与されている必要があります。Oracle Database 12cリリース1 (12.1.0.2)では、仮想プライベート・カタログ・ユーザーはCREATE SESSION権限のみ必要です。
RMANをベース・リカバリ・カタログに接続し、GRANTコマンドを使用して、リカバリ・カタログ権限を仮想カタログの所有者に割り当てます。その後、CREATE VIRTUAL CATALOGを実行して、このユーザーの仮想カタログ・スキーマを作成します。REVOKEを使用すると、カタログ権限を取り消すことができます。
同じデータベース上でCATALOG権限を持つユーザー間の関係
ここで、GRANTの使用方法を説明します。データベースprod1およびprod2が、ベース・リカバリ・カタログに登録されているとします。ベース・リカバリ・カタログにSYSBACKUPまたはSYSDBA権限を持つユーザーとしてログインしている状態で、仮想プライベート・カタログの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 DATABASE TO userid |
指定したユーザーに、リカバリ・カタログで現在認識されていないデータベースを
たとえば、ユーザー |
例
例2-100 仮想プライベート・カタログの権限の付与
データベース・ユーザーRCOがデータベースCATDBにベース・リカバリ・カタログを所有しているとします。このベース・リカバリ・カタログには、データ・センター内の数多くのデータベースのRMANメタデータが格納されています。目標は、データ・センターの2人のバックアップ・オペレータのために、仮想プライベート・カタログを作成することです。データベース・バージョンはOracle Database 12cリリース1 (12.1.0.2)です。
SQL*Plusを起動し、SYSとしてCATDBデータベースに接続します。次に、CREATE USER文を使用して、CATDB上にBCKOP2およびBCKOP3ユーザーを作成します。次のようにして、これらのユーザーにCREATE SESSION権限を付与できます。
SQL> GRANT CREATE SESSION 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として接続します。初回接続時に、RMANで仮想プライベート・カタログが自動的に作成されます。仮想カタログを作成するたびに、RMANを終了して再起動する必要があります。
RMAN> CONNECT CATALOG bckop2@catdb
recovery catalog database Password: password
connected to recovery catalog database
RMAN> EXIT;
新しいRMANセッションを起動し、ユーザーBCKOP3として接続して、このユーザーに関連付けられている仮想プライベート・カタログを作成します。
RMAN> CONNECT CATALOG bckop3@catdb
recovery catalog database Password: password
connected to recovery catalog database
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;