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 TOUSER1WITH ADMIN OPTION; GRANT EXECUTE_CATALOG_ROLE toUSER1WITH ADMIN OPTION;
既に PUBLIC として許可されたオブジェクトへのアクセスは再許可する必要はありません。grant_sys_object プロシージャを使用してアクセスを再許可すると、プロシージャの呼び出しは成功します。