SYS オブジェクトへの SELECT または EXECUTE 権限の付与
通常多くのオブジェクトを含めることができるロールを使用して権限を転送します。1 つのオブジェクトへ権限を付与するには、Amazon RDS プロシージャ rdsadmin.rdsadmin_util.grant_sys_object
を使用します。このプロシージャは、ロールまたは直接付与によってマスターユーザーに既に付与されている権限のみを付与します。
grant_sys_object
プロシージャには以下のパラメータがあります。
重要
大文字と小文字を区別する識別子を使用してユーザーを作成した場合を除き、すべてのパラメータ値に大文字を使用します。例えば、CREATE USER
myuser
または CREATE USER MYUSER
を実行すると、データディクショナリに MYUSER
が保存されます。ただし、CREATE USER
"MyUser"
で二重引用符を使用すると、データディクショナリには MyUser
が保存されます。
パラメータ名 | データ型 | デフォルト | 必須 | 説明 |
---|---|---|---|---|
|
varchar2 |
— |
はい |
権限を付与する元のオブジェクトの名前。オブジェクトとして、ディレクトリ、ファンクション、パッケージ、プロシージャ、シーケンス、テーブル、またはビューを指定できます。オブジェクト名のスペルは |
|
varchar2 |
— |
はい |
権限を付与する先のオブジェクトの名前。オブジェクトとして、スキーマまたはロールを指定できます。 |
|
varchar2 |
null |
はい |
— |
|
boolean |
false |
いいえ |
付与オプションで使用するには、 |
次の例では、オブジェクト V_$SESSION
に対する選択権限をユーザー USER1
に付与します。
begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => '
V_$SESSION
', p_grantee => 'USER1
', p_privilege => 'SELECT
'); end; /
次の例では、付与オプションを使用して、オブジェクト V_$SESSION
に対する選択権限をユーザー USER1
に付与します。
begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => '
V_$SESSION
', p_grantee => 'USER1
', p_privilege => 'SELECT
', p_grant_option =>true
); end; /
オブジェクトに対して権限を付与するには、付与オプションまたは with admin option
を使用して付与されたロールを通じてアカウントにこれらの権限が直接付与されている必要があります。最も一般的なケースとして、SELECT
ロールに付与された DBA ビューでの SELECT_CATALOG_ROLE
権限の付与があります。このロールが with admin option
を通じてユーザーにまだ直接付与されていない場合、権限を転送することはできません。DBA 権限がある場合は、そのロールを他のユーザーに直接付与できます。
次の例では、SELECT_CATALOG_ROLE
と EXECUTE_CATALOG_ROLE
を USER1
に付与します。with
admin option
が使用されているため、USER1
は、SELECT_CATALOG_ROLE
に許可された SYS オブジェクトへのアクセスを許可できるようになりました。
GRANT SELECT_CATALOG_ROLE TO
USER1
WITH ADMIN OPTION; GRANT EXECUTE_CATALOG_ROLE toUSER1
WITH ADMIN OPTION;
既に PUBLIC
として許可されたオブジェクトへのアクセスは再許可する必要はありません。grant_sys_object
プロシージャを使用してアクセスを再許可すると、プロシージャの呼び出しは成功します。