本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為 Db2 授予和撤銷 權限RDS的已儲存程序
本主題中所述的內建預存程序可管理 Amazon RDS for Db2 資料庫的使用者、角色、群組和授權。若要執行這些程序,主要使用者必須先連線到rdsadmin
資料庫。
如需使用這些預存程序的任務,請參閱 授予和撤銷 Db2 RDS 的 權限。
如需語法、參數、用量備註和範例的相關資訊,請參閱下列內建預存程序。
預存程序
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
。 grantee
-
要接收授權的角色、使用者或群組。資料類型為
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
。 grantee
-
要失去授權的角色、使用者或群組。資料類型為
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
。 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
使其無法存取 中 Db2 資料庫執行個體RDS的資料庫。
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
將 ACCESSCTRL
、 DBADM
或 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:授予資料庫管理員對 角色的存取權
下列範例會授予資料庫管理員存取 角色 名為 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
從角色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:從角色撤銷資料庫管理員存取權
下列範例會撤銷資料庫管理員對 角色 名為 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')"