RDS for Db2 の権限の付与と取り消しに関するストアドプロシージャ - Amazon Relational Database Service

RDS for Db2 の権限の付与と取り消しに関するストアドプロシージャ

このトピックで説明する組み込みのストアドプロシージャは、Amazon RDS for Db2 データベースのユーザー、ロール、グループ、承認を管理します。これらのプロシージャを実行する場合、マスターユーザーはまず rdsadmin データベースに接続する必要があります。

これらのストアドプロシージャを使用するタスクについては、「権限の付与と取り消し」と「Kerberos 認証の設定」を参照してください。

構文、パラメータ、使用上の注意、例については、以下の組み込みストアドプロシージャを参照してください。

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」を参照してください。

例 1: ロール、ユーザー、グループにロールを割り当て、権限を付与する

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

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

例 2: PUBLIC にロールを割り当て、権限を付与しない

次の例では、データベース 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」を参照してください。

例 1: ロール、ユーザー、グループからロールを取り消す

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

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

例 2: PUBLIC からロールを取り消す

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

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

rdsadmin.drop_role

ロールを削除します。

構文

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

パラメータ

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

?

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

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

database_name

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

role_name

削除するロールの名前。データ型は varchar です。

使用に関する注意事項

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

以下の例は、データベース TESTDBROLE_TEST というロールを削除します。

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

rdsadmin.add_user

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

構文

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

パラメータ

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

ユーザー名

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

のパスワード

ユーザーのパスワード。データ型は 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')"

パラメータ

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

ユーザー名

ユーザーのユーザー名。データ型は 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')"

パラメータ

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

ユーザー名

ユーザーのユーザー名。データ型は 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')"

パラメータ

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

ユーザー名

ユーザーのユーザー名。データ型は 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')"

パラメータ

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

ユーザー名

ユーザーのユーザー名。データ型は 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」を参照してください。

例 1: データベース管理者アクセスをロールに付与する

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

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

例 2: ユーザーとグループにデータベース管理者アクセスを付与する

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

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

例 3: 複数のユーザーとグループにデータベース管理者のアクセス権を付与する

次の例では、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」を参照してください。

例 1: ロールからデータベース管理者アクセスを取り消す

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

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

例 2: ユーザーとグループからデータベース管理者アクセスを取り消す

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

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

例 3: 複数のユーザーおよびグループからデータベース管理者アクセスを取り消す

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

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

rdsadmin.set_sid_group_mapping

セキュリティ ID (SID) および対応する Active Directory グループ間のマッピングを作成します。

構文

db2 "call rdsadmin.set_sid_group_mapping( ?, 'SID', 'group_name')"

パラメータ

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

?

エラーメッセージを出力するパラメータマーカー。このパラメータは、? のみを受け入れます。

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

SID ()

セキュリティ ID (SID)。データ型は varchar です。

group_name

SID にマッピングする Active Directory グループの名前。データ型は varchar です。

使用に関する注意事項

Active Directory グループで Kerberos 認証を有効にするには、このストアドプロシージャを使用します。マッピングに SID または group_name が既に存在する場合、このストアドプロシージャは失敗します。

グループの SID を検索する方法については、「ステップ 8: PowerShell で Active Directory グループ SID を取得する」を参照してください。

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

次の例では、SID を my_group というグループにマッピングします。

db2 "call rdsadmin.set_sid_group_mapping( ?, 'S-1-5-21-9146495592-531070549-834388463-513', 'my_group')"

rdsadmin.list_sid_group_mapping

DB インスタンスで設定されているすべてのセキュリティ ID (SID) および Active Directory グループのマッピングを一覧表示します。

構文

db2 "call rdsadmin.list_sid_group_mapping()"

使用に関する注意事項

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

rdsadmin.remove_sid_group_mapping

DB インスタンスからセキュリティ ID (SID) および対応する Active Directory グループマッピングを削除します。

構文

db2 "call rdsadmin.remove_sid_group_mapping( ?, 'SID')"

パラメータ

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

?

エラーメッセージを出力するパラメータマーカー。このパラメータは、? のみを受け入れます。

次の入力パラメータが必要です。

SID ()

セキュリティ ID (SID)。データ型は varchar です。

使用に関する注意事項

グループの SID を検索する方法については、「ステップ 8: PowerShell で Active Directory グループ SID を取得する」を参照してください。

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

次の例では、マッピング先のグループから SID マッピングを削除します。

db2 "call rdsadmin.remove_sid_group_mapping( ?, 'S-1-5-21-9146495592-531070549-834388463-513')"