本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授予及撤銷 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。有效值:ROLE、USER、GROUP、PUBLIC。格式必須為值,後面接著名稱。以逗號分隔多個值和名稱。範例:'
USER'。以您自己的資訊取代名稱。user1,user2, GROUPgroup1,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 的角色指派給 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。
範例
範例 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 的使用者,並將使用者指派給名為 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。
範例
下列範例會移除 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_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。
使用須知
您可以透過使用逗號分隔群組名稱,將一或多個群組從使用者移除。
如需檢查移除群組狀態的資訊,請參閱 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。
範例
範例 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:將資料庫管理員存取權授予多個使用者和群組
下列範例會授予資料庫管理員對 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。
範例
範例 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:從多個使用者和群組撤銷資料庫管理員存取權
下列範例會撤銷資料庫管理員對 user1、user2、group1 和 group2 名為 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
列出在資料庫執行個體上設定的所有安全 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')"