用途
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 DATABASE TO 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;