授予及撤銷 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

範例

下列範例會為資料庫 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。有效值:ROLEUSERGROUPPUBLIC

格式必須為值,後面接著名稱。以逗號分隔多個值和名稱。範例:'USER user1, user2, GROUP group1, group2'。以您自己的資訊取代名稱。

下列是選用輸入參數:

admin_option

指定承授者 ROLE 是否具有指派角色的 DBADM 授權。資料類型為 char。預設值為 N

使用須知

如需檢查指派角色狀態的相關資訊,請參閱 rdsadmin.get_task_status

範例

範例 1:將角色指派給角色、使用者和群組,以及授予授權

下列範例會為資料庫 TESTDB 將名為 ROLE_TEST 的角色指派給名為 role1 的角色、名為 user1 的使用者,以及名為 group1 的群組。ROLE_TEST 獲得指派角色的管理員授權。

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

範例 2:將角色指派給 PUBLIC,而不是授予授權

下列範例會為資料庫 TESTDB 將名為 ROLE_TEST 的角色指派給 PUBLICROLE_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

範例

下列範例會為資料庫 TESTDB 捨棄名為 ROLE_TEST 的角色。

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

rdsadmin.add_user

將使用者新增至授權清單。

語法

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

參數

下列是必要參數:

username

使用者的使用者名稱。資料類型為 varchar

password

使用者的密碼。資料類型為 varchar

以下為選用參數:

group_name

要新增使用者的群組之名稱。資料類型為 varchar。預設為空字串或 null。

使用須知

您可以透過使用逗號分隔群組名稱,將使用者新增至一或多個群組。

您可以在建立新使用者或將群組新增至現有使用者時建立群組。您無法自行建立群組。

注意

您可以呼叫 rdsadmin.add_user 來新增的使用者數量上限為 5,000。

如需檢查新增使用者狀態的相關資訊,請參閱 rdsadmin.get_task_status

範例

下列範例會建立名為 jorge_souza 的使用者,並將使用者指派給名為 salesinside_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

範例

下列範例會移除 jorge_souza,使其無法存取 RDS for Db2 資料庫執行個體中的資料庫。

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。預設為空字串。

使用須知

您可以透過使用逗號分隔群組名稱,將一或多個群組新增至使用者。如需檢查新增群組狀態的相關資訊,請參閱 rdsadmin.get_task_status

範例

下列範例會將 direct_salesb2b_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

使用須知

您可以透過使用逗號分隔群組名稱,將一或多個群組從使用者移除。

如需檢查移除群組狀態的資訊,請參閱 rdsadmin.get_task_status

範例

下列範例會將 direct_salesb2b_sales 群組從使用者 jorge_souza 移除。

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

rdsadmin.dbadm_grant

DBADMACCESSCTRLDATAACCESS 授權授予角色、使用者或群組。

語法

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:將資料庫管理員存取權授予使用者和群組

下列範例會授予資料庫管理員對 user1group1 名為 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

從角色、使用者或群組撤銷 DBADMACCESSCTRLDATAACCESS 授權。

語法

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:從使用者和群組撤銷資料庫管理員存取權

下列範例會撤銷資料庫管理員對 user1group1 名為 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 身分驗證。如果映射中已存在 SIDgroup_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

列出在資料庫執行個體上設定的所有安全 ID (SID) 和 Active Directory 群組映射。

語法

db2 "call rdsadmin.list_sid_group_mapping()"

使用須知

如需檢查列出映射狀態的相關資訊,請參閱 rdsadmin.get_task_status

rdsadmin.remove_sid_group_mapping

從資料庫執行個體移除安全 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')"