権限の付与と取り消し - Amazon Relational Database Service

権限の付与と取り消し

次のストアドプロシージャを使用すると、Amazon RDS for Db2 データベースの権限を付与および取り消すことができます。これらのプロシージャを実行するには、マスターユーザーがまず rdsadmin データベースに接続する必要があります。

rdsadmin.create_role

ロールを作成します。

構文

db2 "call rdsadmin.create_role( 'database_name', 'role_name')"

パラメータ

以下のパラメータは必須です。

database_name

コマンドを実行する対象データベースの名前。データ型は varchar です。

role_name

作成するロールの名前。データ型は varchar です。

使用に関する注意事項

ロールの作成ステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

以下の例は、データベース DB2DBMY_ROLE というロールを作成します。

db2 "call rdsadmin.create_role( 'DB2DB', 'MY_ROLE')"

rdsadmin.grant_role

ロール、ユーザー、またはグループにロールを割り当てます。

構文

db2 "call rdsadmin.grant_role( ?, 'database_name', 'role_name', 'grantee', 'admin_option')"

パラメータ

次のアウトプットパラメータが必要です。

?

このタスクで一意の識別子を出力するパラメータマーカー。このパラメータは、? のみを受け入れます。

次の入力パラメータが必要となります。

database_name

コマンドを実行する対象データベースの名前。データ型は varchar です。

role_name

作成するロールの名前。データ型は varchar です。

grantee

承認を受け取るロール、ユーザー、またはグループ。データ型は varchar です。有効な値は、ROLEUSERGROUPPUBLIC です。

形式は、値の後に名前を続ける必要があります。複数の値と名前はカンマで区切ります。例えば、「USER user1, user2, GROUP group1, group2」などです。名前を、ユーザー自身の情報に置き換えます。

次の入力パラメータは、オプションです。

admin_option

被付与者 ROLE がロールを割り当てる DBADM 権限を持っているかどうかを指定します。データ型は char です。デフォルト: N

使用に関する注意事項

ロールの割り当てステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

次の例では、データベース TESTDBROLE_TEST というロールを role1 というロール、user1 というユーザー、および group1 というグループに割り当てます。 ROLE_TEST には、ロールを割り当てる管理者権限が付与されています。

db2 "call rdsadmin.grant_role( ?, 'TESTDB', 'ROLE_TEST', 'ROLE role1, USER user1, GROUP group1', 'Y')"

次の例では、データベース TESTDBROLE_TEST というロールを PUBLIC に割り当てます。ROLE_TEST には、ロールを割り当てるための管理者権限は付与されていません。

db2 "call rdsadmin.grant_role( ?, 'TESTDB', 'ROLE_TEST', 'PUBLIC')"

rdsadmin.revoke_role

ロール、ユーザー、またはグループのロールを取り消します。

構文

db2 "call rdsadmin.revoke_role( ?, 'database_name', 'role_name', 'grantee')"

パラメータ

次のアウトプットパラメータが必要です。

?

このタスクで一意の識別子を出力するパラメータマーカー。このパラメーターが受け入れるのは、? のみです。

次の入力パラメータが必要となります。

database_name

コマンドを実行する対象データベースの名前。データ型は varchar です。

role_name

取り消すロールの名前。データ型は varchar です。

grantee

権限を失うロール、ユーザー、またはグループ。データ型は varchar です。有効な値は、ROLEUSERGROUPPUBLIC です。

形式は、値の後に名前を続ける必要があります。複数の値と名前はカンマで区切ります。例えば、「USER user1, user2, GROUP group1, group2」などです。名前を、ユーザー自身の情報に置き換えます。

使用に関する注意事項

ロールの割り当てステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

次の例では、ロール role1、ユーザー user1、グループ group1 からデータベース TESTDB のロール ROLE_TEST を取り消します。

db2 "call rdsadmin.revoke_role( ?, 'TESTDB', 'ROLE_TEST', 'ROLE role1, USER user1, GROUP group1')"

次の例は、PUBLIC からデータベース TESTDB のロール ROLE_TEST を取り消します。

db2 "call rdsadmin.revoke_role( ?, 'TESTDB', 'ROLE_TEST', 'PUBLIC')"

rdsadmin.add_user

承認リストにユーザーを追加します。

構文

db2 "call rdsadmin.add_user( 'username', 'password', 'group_name,group_name')"

パラメータ

以下のパラメータは必須です。

username

ユーザーのユーザー名。データ型は varchar です。

password

ユーザーのパスワード。データ型は varchar です。

次のパラメータはオプションです。

group_name

ユーザーを追加するグループの名前。データ型は varchar です。デフォルトは空の文字列または null です。

使用に関する注意事項

グループ名をカンマで区切ることで、ユーザーを 1 つ以上のグループに追加できます。

新しいユーザーを作成するとき、または既存のユーザー にグループを追加するとき、グループを作成できます。グループの作成のみを行うことはできません。

注記

rdsadmin.add_user を呼び出すことで追加できるユーザーの最大数は 5,000 です。

ユーザーの追加ステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

次の例では、jorge_souza という名前のユーザーを作成し、このユーザーを sales グループと inside_sales グループに割り当てます。

db2 "call rdsadmin.add_user( 'jorge_souza', '*******', 'sales,inside_sales')"

rdsadmin.change_password

ユーザーのパスワードを変更します。

構文

db2 "call rdsadmin.change_password( 'username', 'new_password')"

パラメータ

以下のパラメータは必須です。

username

ユーザーのユーザー名。データ型は varchar です。

new_password

ユーザーの新しいパスワード。データ型は varchar です。

使用に関する注意事項

パスワードの変更ステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

次の例は、jorge_souza のパスワードを変更します。

db2 "call rdsadmin.change_password( 'jorge_souza', '*******')"

rdsadmin.list_users

承認リストにユーザーを一覧表示します。

構文

db2 "call rdsadmin.list_users()"

使用に関する注意事項

ユーザーの一覧表示ステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

rdsadmin.remove_user

承認リストからユーザーを削除します。

構文

db2 "call rdsadmin.remove_user('username')"

パラメータ

以下のパラメータは必須です。

username

ユーザーのユーザー名。データ型は varchar です。

使用に関する注意事項

ユーザーの削除ステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

次の例では、 RDS for Db2 DB インスタンスのデータベースに jorge_souza がアクセスできないようにします。

db2 "call rdsadmin.remove_user('jorge_souza')"

rdsadmin.add_groups

グループをユーザーに追加します。

構文

db2 "call rdsadmin.add_groups( 'username', 'group_name,group_name')"

パラメータ

以下のパラメータは必須です。

username

ユーザーのユーザー名。データ型は varchar です。

group_name

ユーザーを追加するグループの名前。データ型は varchar です。デフォルトは空の文字列です。

使用に関する注意事項

グループ名をカンマで区切ることで、1 つ以上のグループをユーザーに追加できます。グループの追加ステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

次の例は、direct_sales および b2b_sales グループをユーザー jorge_souza に追加します。

db2 "call rdsadmin.add_groups( 'jorge_souza', 'direct_sales,b2b_sales')"

rdsadmin.remove_groups

ユーザーからグループを削除します。

構文

db2 "call rdsadmin.remove_groups( 'username', 'group_name,group_name')"

パラメータ

以下のパラメータは必須です。

username

ユーザーのユーザー名。データ型は varchar です。

group_name

ユーザーを削除するグループの名前。データ型は varchar です。

使用に関する注意事項

グループ名をカンマで区切ることで、1 つ以上のグループをユーザーから削除できます。

グループの削除ステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

次の例は、direct_sales および b2b_sales グループをユーザー jorge_souza から削除します。

db2 "call rdsadmin.remove_groups( 'jorge_souza', 'direct_sales,b2b_sales')"

rdsadmin.dbadm_grant

ロール、ユーザー、またはグループに DBADMACCESSCTRL、または DATAACCESS 権限を付与します。

構文

db2 "call rdsadmin.dbadm_grant( ?, 'database_name', 'authorization', 'grantee')"

パラメータ

次のアウトプットパラメータが必要です。

?

このタスクで一意の識別子を出力するパラメータマーカー。このパラメータは、? のみを受け入れます。

次の入力パラメータが必要となります。

database_name

コマンドを実行する対象データベースの名前。データ型は varchar です。

authorization

付与する権限のタイプ。データ型は varchar です。有効な値は、DBADMACCESSCTRLDATAACCESS です。

タイプが複数の場合、カンマで区切ります。

grantee

承認を受け取るロール、ユーザー、またはグループ。データ型は varchar です。有効な値は、ROLEUSERGROUP です。

形式は、値の後に名前を続ける必要があります。複数の値と名前はカンマで区切ります。例えば、「USER user1, user2, GROUP group1, group2」などです。名前を、ユーザー自身の情報に置き換えます。

使用に関する注意事項

アクセス権を受け取るロールが存在している必要があります。

データベース管理者アクセスの許可ステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

次の例では、ロール ROLE_DBA に対して、TESTDB という名前のデータベースへのデータベース管理者アクセスを許可します。

db2 "call rdsadmin.dbadm_grant( ?, 'TESTDB', 'DBADM', 'ROLE ROLE_DBA')"

次の例では、user1 および group1 に対して、TESTDB という名前のデータベースへのデータベース管理者アクセスを許可します。

db2 "call rdsadmin.dbadm_grant( ?, 'TESTDB', 'DBADM', 'USER user1, GROUP group1')"

次の例では、user1user2group1group2 に対して、TESTDB という名前のデータベースへのデータベース管理者アクセスを許可します。

db2 "call rdsadmin.dbadm_grant( ?, 'TESTDB', 'DBADM', 'USER user1, user2, GROUP group1, group2')"

rdsadmin.dbadm_revoke

ロール、ユーザー、またはグループの DBADMACCESSCTRL、または DATAACCESS 権限を取り消します。

構文

db2 "call rdsadmin.dbadm_revoke( ?, 'database_name', 'authorization', 'grantee')"

パラメータ

次のアウトプットパラメータが必要です。

?

タスクの一意の識別子。このパラメータは、? のみを受け入れます。

次の入力パラメータが必要となります。

database_name

コマンドを実行する対象データベースの名前。データ型は varchar です。

authorization

取り消す権限のタイプ。データ型は varchar です。有効な値は、DBADMACCESSCTRLDATAACCESS です。

タイプが複数の場合、カンマで区切ります。

grantee

権限を受け取るロール、ユーザー、またはグループ。データ型は varchar です。有効な値は、ROLEUSERGROUP です。

形式は、値の後に名前を続ける必要があります。複数の値と名前はカンマで区切ります。例えば、「USER user1, user2, GROUP group1, group2」などです。名前を、ユーザー自身の情報に置き換えます。

使用に関する注意事項

データベース管理者アクセスの取り消しステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

次の例では、ロール ROLE_DBA に対して、TESTDB という名前のデータベースへのデータベース管理者アクセスを取り消します。

db2 "call rdsadmin.dbadm_revoke( ?, 'TESTDB', 'DBADM', 'ROLE ROLE_DBA')"

次の例では、user1 および group1 に対して、TESTDB という名前のデータベースへのデータベース管理者アクセスを取り消します。

db2 "call rdsadmin.dbadm_revoke( ?, 'TESTDB', 'DBADM', 'USER user1, GROUP group1')"

次の例では、user1user2group1group2 に対して、TESTDB という名前のデータベースへのデータベース管理者アクセスを取り消します。

db2 "call rdsadmin.dbadm_revoke( ?, 'TESTDB', 'DBADM', 'USER user1, user2, GROUP group1, group2')"