権限の付与と取り消し
次のストアドプロシージャを使用すると、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」を参照してください。
例
以下の例は、データベース DB2DB の MY_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です。有効な値は、ROLE、USER、GROUP、PUBLICです。形式は、値の後に名前を続ける必要があります。複数の値と名前はカンマで区切ります。例えば、「
USER」などです。名前を、ユーザー自身の情報に置き換えます。user1,user2, GROUPgroup1,group2
次の入力パラメータは、オプションです。
admin_option-
被付与者
ROLEがロールを割り当てるDBADM権限を持っているかどうかを指定します。データ型はcharです。デフォルト:N。
使用に関する注意事項
ロールの割り当てステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。
例
次の例では、データベース TESTDB の ROLE_TEST というロールを role1 というロール、user1 というユーザー、および group1 というグループに割り当てます。 ROLE_TEST には、ロールを割り当てる管理者権限が付与されています。
db2 "call rdsadmin.grant_role( ?, 'TESTDB', 'ROLE_TEST', 'ROLE role1, USER user1, GROUP group1', 'Y')"
次の例では、データベース TESTDB の ROLE_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です。有効な値は、ROLE、USER、GROUP、PUBLICです。形式は、値の後に名前を続ける必要があります。複数の値と名前はカンマで区切ります。例えば、「
USER」などです。名前を、ユーザー自身の情報に置き換えます。user1,user2, GROUPgroup1,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
ロール、ユーザー、またはグループに DBADM、ACCESSCTRL、または DATAACCESS 権限を付与します。
構文
db2 "call rdsadmin.dbadm_grant( ?, 'database_name', 'authorization', 'grantee')"
パラメータ
次のアウトプットパラメータが必要です。
- ?
-
このタスクで一意の識別子を出力するパラメータマーカー。このパラメータは、
?のみを受け入れます。
次の入力パラメータが必要となります。
database_name-
コマンドを実行する対象データベースの名前。データ型は
varcharです。 authorization-
付与する権限のタイプ。データ型は
varcharです。有効な値は、DBADM、ACCESSCTRL、DATAACCESSです。タイプが複数の場合、カンマで区切ります。
grantee-
承認を受け取るロール、ユーザー、またはグループ。データ型は
varcharです。有効な値は、ROLE、USER、GROUPです。形式は、値の後に名前を続ける必要があります。複数の値と名前はカンマで区切ります。例えば、「
USER」などです。名前を、ユーザー自身の情報に置き換えます。user1,user2, GROUPgroup1,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')"
次の例では、user1、user2、group1、group2 に対して、TESTDB という名前のデータベースへのデータベース管理者アクセスを許可します。
db2 "call rdsadmin.dbadm_grant( ?, 'TESTDB', 'DBADM', 'USER user1, user2, GROUP group1, group2')"
rdsadmin.dbadm_revoke
ロール、ユーザー、またはグループの DBADM、ACCESSCTRL、または DATAACCESS 権限を取り消します。
構文
db2 "call rdsadmin.dbadm_revoke( ?, 'database_name', 'authorization', 'grantee')"
パラメータ
次のアウトプットパラメータが必要です。
- ?
-
タスクの一意の識別子。このパラメータは、
?のみを受け入れます。
次の入力パラメータが必要となります。
database_name-
コマンドを実行する対象データベースの名前。データ型は
varcharです。 authorization-
取り消す権限のタイプ。データ型は
varcharです。有効な値は、DBADM、ACCESSCTRL、DATAACCESSです。タイプが複数の場合、カンマで区切ります。
grantee-
権限を受け取るロール、ユーザー、またはグループ。データ型は
varcharです。有効な値は、ROLE、USER、GROUPです。形式は、値の後に名前を続ける必要があります。複数の値と名前はカンマで区切ります。例えば、「
USER」などです。名前を、ユーザー自身の情報に置き換えます。user1,user2, GROUPgroup1,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')"
次の例では、user1、user2、group1、group2 に対して、TESTDB という名前のデータベースへのデータベース管理者アクセスを取り消します。
db2 "call rdsadmin.dbadm_revoke( ?, 'TESTDB', 'DBADM', 'USER user1, user2, GROUP group1, group2')"