権限の付与と取り消し
次のストアドプロシージャを使用すると、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')"