SYS オブジェクトへの SELECT または EXECUTE 権限の付与 - Amazon Relational Database Service

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 が保存されます。

パラメータ名 データ型 デフォルト 必須 説明

p_obj_name

varchar2

はい

権限を付与する元のオブジェクトの名前。オブジェクトとして、ディレクトリ、ファンクション、パッケージ、プロシージャ、シーケンス、テーブル、またはビューを指定できます。オブジェクト名のスペルは DBA_OBJECTS に表示されているとおりに正確に入力する必要があります。ほとんどのシステムオブジェクトが大文字で定義されるため、初めにこれを試すことをお勧めします。

p_grantee

varchar2

はい

権限を付与する先のオブジェクトの名前。オブジェクトとして、スキーマまたはロールを指定できます。

p_privilege

varchar2

null

はい

p_grant_option

boolean

false

いいえ

付与オプションで使用するには、true に設定します。

次の例では、オブジェクト 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_ROLEEXECUTE_CATALOG_ROLEUSER1 に付与します。with admin option が使用されているため、USER1 は、SELECT_CATALOG_ROLE に許可された SYS オブジェクトへのアクセスを許可できるようになりました。

GRANT SELECT_CATALOG_ROLE TO USER1 WITH ADMIN OPTION; GRANT EXECUTE_CATALOG_ROLE to USER1 WITH ADMIN OPTION;

既に PUBLIC として許可されたオブジェクトへのアクセスは再許可する必要はありません。grant_sys_object プロシージャを使用してアクセスを再許可すると、プロシージャの呼び出しは成功します。