本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授予和撤銷 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。
範例
下列範例會MY_ROLE
為資料庫 建立名為 的角色DB2DB
。
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
。 承授者
-
要接收授權的角色、使用者或群組。資料類型為
varchar
。有效值:ROLE
、USER
、GROUP
、PUBLIC
。格式必須是 值,後面接著名稱。以逗號分隔多個值和名稱。範例:'
USER
'。將名稱取代為您自己的資訊。user1
,user2
, GROUPgroup1
,group2
下列輸入參數為選用:
admin_option
-
指定承授者是否
ROLE
具有指派角色DBADM
的授權。資料類型為char
。預設值為N
。
使用須知
如需檢查指派角色狀態的資訊,請參閱 rdsadmin.get_task_status。
範例
範例 1:將角色指派給角色、使用者和群組,以及授予授權
下列範例會將名為 ROLE_TEST
的資料庫角色指派給名為 TESTDB
的角色role1
、名為 的使用者user1
,以及名為 的群組group1
。 ROLE_TEST
獲得指派角色的管理員授權。
db2 "call rdsadmin.grant_role( ?, 'TESTDB', 'ROLE_TEST', 'ROLE role1, USER user1, GROUP group1', 'Y')"
範例 2:將角色指派給 PUBLIC
,而不是授予授權
下列範例會將名為 ROLE_TEST
的資料庫角色指派給 TESTDB
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
。 承授者
-
要失去授權的角色、使用者或群組。資料類型為
varchar
。有效值:ROLE
、USER
、GROUP
、PUBLIC
。格式必須是 值,後面接著名稱。以逗號分隔多個值和名稱。範例:'
USER
'。將名稱取代為您自己的資訊。user1
,user2
, GROUPgroup1
,group2
使用須知
如需檢查撤銷角色狀態的資訊,請參閱 rdsadmin.get_task_status。
範例
範例 1:從角色、使用者和群組撤銷角色
下列範例TESTDB
會從名為 的角色role1
、名為 的使用者user1
和名為 的群組撤銷ROLE_TEST
名為 資料庫的角色group1
。
db2 "call rdsadmin.revoke_role( ?, 'TESTDB', 'ROLE_TEST', 'ROLE role1, USER user1, GROUP group1')"
範例 2:從 撤銷角色 PUBLIC
下列範例TESTDB
會從 撤銷名為 ROLE_TEST
的資料庫角色PUBLIC
。
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。
範例
下列範例會捨棄ROLE_TEST
針對資料庫 呼叫的角色TESTDB
。
db2 "call rdsadmin.drop_role( ?, 'TESTDB', 'ROLE_TEST')"
rdsadmin.add_user
將使用者新增至授權清單。
語法
db2 "call rdsadmin.add_user( '
username
', 'password
', 'group_name
,group_name
')"
參數
下列是必要參數:
username
-
使用者的使用者名稱。資料類型為
varchar
。 密碼:
-
使用者的密碼。資料類型為
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
。使用逗號分隔多種類型。
承授者
-
要接收授權的角色、使用者或群組。資料類型為
varchar
。有效值:ROLE
、USER
、GROUP
。格式必須是 值,後面接著名稱。以逗號分隔多個值和名稱。範例:'
USER
'。將名稱取代為您自己的資訊。user1
,user2
, GROUPgroup1
,group2
使用須知
接收存取權的角色必須存在。
如需檢查授予資料庫管理員存取權狀態的資訊,請參閱 rdsadmin.get_task_status。
範例
範例 1:授予資料庫管理員對角色的存取權
下列範例會授予資料庫管理員存取 角色 名為 TESTDB
的資料庫ROLE_DBA
。
db2 "call rdsadmin.dbadm_grant( ?, 'TESTDB', 'DBADM', 'ROLE ROLE_DBA')"
範例 2:將資料庫管理員存取權授予使用者和群組
下列範例會授予資料庫管理員對名為 user1
和 之資料庫TESTDB
的存取權group1
。
db2 "call rdsadmin.dbadm_grant( ?, 'TESTDB', 'DBADM', 'USER user1, GROUP group1')"
範例 3:將資料庫管理員存取權授予多個使用者和群組
下列範例會授予資料庫管理員對名為 user1
、group1
、 user2
和 之資料庫TESTDB
的存取權group2
。
db2 "call rdsadmin.dbadm_grant( ?, 'TESTDB', 'DBADM', 'USER user1, user2, GROUP group1, group2')"
rdsadmin.dbadm_revoke
從角色ACCESSCTRL
、使用者或群組撤銷 DBADM
、 或 DATAACCESS
授權。
語法
db2 "call rdsadmin.dbadm_revoke( ?, '
database_name
', 'authorization
', 'grantee
')"
參數
需要下列輸出參數:
- ?
-
任務的唯一識別符。此參數僅接受
?
。
需要下列輸入參數:
database_name
-
命令將在其中執行的資料庫名稱。資料類型為
varchar
。 authorization
-
要撤銷的授權類型。資料類型為
varchar
。有效值:DBADM
、ACCESSCTRL
、DATAACCESS
。使用逗號分隔多種類型。
承授者
-
要撤銷授權的角色、使用者或群組。資料類型為
varchar
。有效值:ROLE
、USER
、GROUP
。格式必須是 值,後面接著名稱。以逗號分隔多個值和名稱。範例:'
USER
'。將名稱取代為您自己的資訊。user1
,user2
, GROUPgroup1
,group2
使用須知
如需檢查撤銷資料庫管理員存取權狀態的資訊,請參閱 rdsadmin.get_task_status。
範例
範例 1:從角色撤銷資料庫管理員存取權
下列範例會撤銷資料庫管理員對角色 名為 之資料庫TESTDB
的存取權ROLE_DBA
。
db2 "call rdsadmin.dbadm_revoke( ?, 'TESTDB', 'DBADM', 'ROLE ROLE_DBA')"
範例 2:從使用者和群組撤銷資料庫管理員存取權
下列範例會撤銷資料庫管理員對名為 user1
和 之資料庫TESTDB
的存取權group1
。
db2 "call rdsadmin.dbadm_revoke( ?, 'TESTDB', 'DBADM', 'USER user1, GROUP group1')"
範例 3:從多個使用者和群組撤銷資料庫管理員存取權
下列範例會撤銷資料庫管理員對名為 user1
、group1
、 user2
和 之資料庫TESTDB
的存取權group2
。
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 身分驗證。如果映射中group_name
已存在 SID
或 ,則此預存程序會失敗。
如需如何尋找群組 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')"