本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授予和撤銷 Db2 RDS 的 權限
使用者可透過連接到資料庫之群組的成員資格來存取資料庫。
使用下列程序授予和撤銷許可,以控制對資料庫的存取。
這些程序使用 IBM Db2 CLP 在本機電腦上執行,以連線至 RDS for Db2 資料庫執行個體。請務必為TCPIP節點和資料庫編製目錄,以連線至本機機器上執行的 RDS 的 Db2 資料庫執行個體。如需詳細資訊,請參閱使用以下方式連接到您的 Amazon RDS 適用於 Db2 資料庫 IBM Db2 CLP。
授予使用者對資料庫的存取權
授予使用者對資料庫的存取權
-
使用RDS適用於 Db2
rdsadmin
資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,取代master_username
以及master_password
使用您自己的資訊。db2 connect to rdsadmin user
master_username
usingmaster_password
此命令會產生類似下列範例的輸出:
Database Connection Information Database server = DB2/LINUXX8664 11.5.8.0 SQL authorization ID = ADMIN Local database alias = RDSADMIN
-
呼叫 ,將使用者新增至您的授權清單
rdsadmin.add_user
。如需詳細資訊,請參閱rdsadmin.add_user。db2 "call rdsadmin.add_user( '
username
', 'password
', 'group_name
,group_name
')" -
(選用) 呼叫 將其他群組新增至使用者
rdsadmin.add_groups
。如需詳細資訊,請參閱rdsadmin.add_groups。db2 "call rdsadmin.add_groups( '
username
', 'group_name
,group_name
')" -
確認使用者可用的授權。在下列範例中,取代
rds_database_alias
,master_user
和master_password
使用您自己的資訊。此外,請取代username
使用者使用者名稱。db2 terminate db2 connect to
rds_database_alias
usermaster_user
usingmaster_password
db2 "SELECT SUBSTR(AUTHORITY,1,20) AUTHORITY, D_USER, D_GROUP, D_PUBLIC FROM TABLE (SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID ('username
', 'U') ) AS T ORDER BY AUTHORITY"此命令會產生類似下列範例的輸出:
AUTHORITY D_USER D_GROUP D_PUBLIC -------------------- ------ ------- -------- ACCESSCTRL N N N BINDADD N N N CONNECT N N N CREATETAB N N N CREATE_EXTERNAL_ROUT N N N CREATE_NOT_FENCED_RO N N N CREATE_SECURE_OBJECT N N N DATAACCESS N N N DBADM N N N EXPLAIN N N N IMPLICIT_SCHEMA N N N LOAD N N N QUIESCE_CONNECT N N N SECADM N N N SQLADM N N N SYSADM * N * SYSCTRL * N * SYSMAINT * N * SYSMON * N * WLMADM N N N
-
將 RDS for Db2 角色
ROLE_NULLID_PACKAGES
、ROLE_TABLESPACES
和 授予您新增使用者所在的ROLE_PROCEDURES
群組。如需詳細資訊,請參閱RDS適用於 Db2 的 Amazon 預設角色。注意
我們在
RESTRICTIVE
模式中RDS為 Db2 資料庫執行個體建立 。因此, RDS的 Db2 角色ROLE_NULLID_PACKAGES
、ROLE_TABLESPACES
和ROLE_PROCEDURES
授予 的NULLID
套件執行權限 IBM Db2 CLP 以及 Dynamic SQL。 這些角色也會授予使用者資料表空間的權限。-
連線至 Db2 資料庫。在下列範例中,取代
database_name
,master_user
和master_password
使用您自己的資訊。db2 connect to
database_name
usermaster_user
usingmaster_password
-
將角色授予
ROLE_NULLED_PACKAGES
群組。在下列範例中,取代group_name
包含您要新增角色的群組名稱。db2 "grant role ROLE_NULLID_PACKAGES to group
group_name
" -
將角色授予
ROLE_TABLESPACES
相同群組。在下列範例中,取代group_name
包含您要新增角色的群組名稱。db2 "grant role ROLE_TABLESPACES to group
group_name
" -
將角色授予
ROLE_PROCEDURES
相同群組。在下列範例中,取代group_name
包含您要新增角色的群組名稱。db2 "grant role ROLE_PROCEDURES to group
group_name
"
-
-
將
connect
、createtab
、bindadd
和IMPLICIT_SCHEMA
授權授予您新增使用者的群組。在下列範例中,取代group_name
以及您新增使用者的第二個群組名稱。db2 "grant usage on workload SYSDEFAULTUSERWORKLOAD to public" db2 "grant connect, bindadd, createtab, implicit_schema on database to group
group_name
" -
為您新增使用者的每個額外群組重複步驟 4 到 6。
-
以使用者身分連線、建立資料表、將值插入資料表,以及從資料表傳回資料,以測試使用者的存取權。在下列範例中,取代
rds_database_alias
,username
和password
具有資料庫的名稱和使用者的使用者名稱和密碼。db2 connect to
rds_database_alias
userusername
usingpassword
db2 "create table t1(c1 int not null)" db2 "insert into t1 values (1),(2),(3),(4)" db2 "select * from t1"
變更使用者的密碼
若要變更使用者的密碼
-
使用RDS適用於 Db2
rdsadmin
資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,取代master_username
以及master_password
使用您自己的資訊。db2 connect to rdsadmin user
master_username
usingmaster_password
-
呼叫 來變更密碼
rdsadmin.change_password
。如需詳細資訊,請參閱rdsadmin.change_password。db2 "call rdsadmin.change_password( '
username
', 'new_password
')"
將群組新增至使用者
將群組新增至使用者
-
使用RDS適用於 Db2
rdsadmin
資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,取代master_username
以及master_password
使用您自己的資訊。db2 connect to rdsadmin user
master_username
usingmaster_password
-
呼叫 將群組新增至使用者
rdsadmin.add_groups
。如需詳細資訊,請參閱rdsadmin.add_groups。db2 "call rdsadmin.add_groups( '
username
', 'group_name
,group_name
')"
從使用者移除群組
從使用者中移除群組
-
使用RDS適用於 Db2
rdsadmin
資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,取代master_username
以及master_password
使用您自己的資訊。db2 connect to rdsadmin user
master_username
usingmaster_password
-
呼叫 以移除群組
rdsadmin.remove_groups
。如需詳細資訊,請參閱rdsadmin.remove_groups。db2 "call rdsadmin.remove_groups( '
username
', 'group_name
,group_name
')"
移除使用者
從授權清單中移除使用者
-
使用RDS適用於 Db2
rdsadmin
資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,取代master_username
以及master_password
使用您自己的資訊。db2 connect to rdsadmin user
master_username
usingmaster_password
-
呼叫 ,從授權清單中移除使用者
rdsadmin.remove_user
。如需詳細資訊,請參閱rdsadmin.remove_user。db2 "call rdsadmin.remove_user('
username
')"
列出使用者
若要列出授權清單上的使用者,請呼叫rdsadmin.list_users
預存程序。如需詳細資訊,請參閱rdsadmin.list_users。
db2 "call rdsadmin.list_users()"
建立角色
您可以使用rdsadmin.create_role預存程序來建立角色。
若要建立角色
-
連線至
rdsadmin
資料庫。在下列範例中,取代master_username
以及master_password
使用您的資訊。db2 connect to rdsadmin user
master_username
usingmaster_password
-
將 Db2 設定為輸出內容。
db2 set serveroutput on
-
建立角色。如需詳細資訊,請參閱rdsadmin.create_role。
db2 "call rdsadmin.create_role( '
database_name
', 'role_name
')" -
將 Db2 設定為不輸出內容。
db2 set serveroutput off
授予角色
您可以使用rdsadmin.grant_role預存程序將角色指派給角色、使用者或群組。
指派角色
-
連線至
rdsadmin
資料庫。在下列範例中,取代master_username
以及master_password
使用您的資訊。db2 connect to rdsadmin user
master_username
usingmaster_password
-
將 Db2 設定為輸出內容。
db2 set serveroutput on
-
指派角色。如需詳細資訊,請參閱rdsadmin.grant_role。
db2 "call rdsadmin.grant_role( '
database_name
', 'role_name
', 'grantee
', 'admin_option
')" -
將 Db2 設定為不輸出內容。
db2 set serveroutput off
撤銷角色
您可以使用rdsadmin.revoke_role預存程序從角色、使用者或群組撤銷角色。
若要撤銷角色
-
連線至
rdsadmin
資料庫。在下列範例中,取代master_username
以及master_password
使用您的資訊。db2 connect to rdsadmin user
master_username
usingmaster_password
-
撤銷角色。如需詳細資訊,請參閱rdsadmin.revoke_role。
db2 "call rdsadmin.revoke_role( ?, '
database_name
', 'role_name
', 'grantee
')"
授予資料庫授權
擁有DBADM
授權的主要使用者可以將 ACCESSCTRL
、 DBADM
或 DATAACCESS
授權授予角色、使用者或群組。
授予資料庫授權
-
使用RDS適用於 Db2
rdsadmin
資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,取代master_username
以及master_password
使用您自己的資訊。db2 connect to rdsadmin user
master_username
usingmaster_password
-
呼叫 授予使用者存取權
rdsadmin.dbadm_grant
。如需詳細資訊,請參閱rdsadmin.dbadm_grant。db2 "call rdsadmin.dbadm_grant( ?, '
database_name
, 'authorization
', 'grantee
')"
範例使用案例
下列程序會逐步引導您建立角色、授予角色DBADM
授權、將角色指派給使用者,以及將角色授予群組。
-
使用RDS適用於 Db2
rdsadmin
資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,取代master_username
以及master_password
使用您自己的資訊。db2 connect to rdsadmin user
master_username
usingmaster_password
-
建立名為
PROD_ROLE
的資料庫的 角色TESTDB
。如需詳細資訊,請參閱rdsadmin.create_role。db2 "call rdsadmin.create_role( 'TESTDB', 'PROD_ROLE')"
-
將角色指派給名為 的使用者
PROD_USER
。PROD_USER
獲得管理員授權來指派角色。如需詳細資訊,請參閱rdsadmin.grant_role。db2 "call rdsadmin.grant_role( ?, 'TESTDB', 'PROD_ROLE', 'USER PROD_USER', 'Y')"
-
(選用) 提供額外的授權或權限。下列範例會授予
DBADM
授權給名為PROD_ROLE
的資料庫角色FUNDPROD
。如需詳細資訊,請參閱rdsadmin.dbadm_grant。db2 "call rdsadmin.dbadm_grant( ?, 'FUNDPROD', 'DBADM', 'ROLE PROD_ROLE')"
-
終止您的工作階段。
db2 terminate
-
使用RDS適用於 Db2
TESTDB
資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,取代master_username
以及master_password
使用您自己的資訊。db2 connect to TESTDB user
master_username
usingmaster_password
-
將更多授權新增至角色。
db2 "grant connect, implicit_schema on database to role PROD_ROLE"
-
將角色授予
PROD_ROLE
群組。db2 "grant role PROD_ROLE to group PRODGRP"
屬於 群組的使用者PRODGRP
現在可以執行動作,例如連線至TESTDB
資料庫、建立資料表或建立結構描述。
撤銷資料庫授權
擁有DBADM
授權的主要使用者可以從角色DBADM
ACCESSCTRL
、使用者或群組撤銷 、 或 DATAACCESS
授權。
若要撤銷資料庫授權
-
使用RDS適用於 Db2
rdsadmin
資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,取代master_username
以及master_password
使用您自己的資訊。db2 connect to rdsadmin user
master_username
usingmaster_password
-
呼叫 來撤銷使用者存取權
rdsadmin.dbadm_revoke
。如需詳細資訊,請參閱rdsadmin.dbadm_revoke。db2 "call rdsadmin.dbadm_revoke( ?, '
database_name
, 'authorization
', 'grantee
')"