本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授予和撤銷 RDS for Db2 的權限
使用者可透過連接到資料庫之群組的成員資格來存取資料庫。
使用下列程序來授予和撤銷許可,以控制對資料庫的存取。
這些程序使用本機電腦上IBM Db2 CLP執行的 來連線至 RDS for Db2 資料庫執行個體。請務必為 TCPIP 節點和資料庫編製目錄,以連線至本機電腦上執行的 RDS for Db2 資料庫執行個體。如需詳細資訊,請參閱使用以下方式連接到您的 Amazon RDS 適用於 Db2 資料庫 IBM Db2 CLP。
授予使用者存取資料庫的權限
授予使用者存取資料庫的權限
-
使用 RDS for 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
取代為您自己的資訊。此外,請將使用者名稱
取代為使用者的使用者名稱。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 for Db2 資料庫執行個體。因此,RDS for Db2 角色ROLE_NULLID_PACKAGES
、ROLE_TABLESPACES
和 會ROLE_PROCEDURES
授予 IBM Db2 CLP和NULLID
套件的執行權限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
、使用者名稱和密碼
取代為資料庫的名稱和使用者的使用者名稱和密碼。
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 for 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 for 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 for 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 for 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
')"
捨棄角色
您可以使用rdsadmin.drop_role預存程序來捨棄角色。
捨棄角色
-
連線至
rdsadmin
資料庫。在下列範例中,將master_username
和master_password
取代為您的資訊。db2 connect to rdsadmin user
master_username
usingmaster_password
-
捨棄角色。如需詳細資訊,請參閱rdsadmin.drop_role。
db2 "call rdsadmin.drop_role( ?, '
database_name
', 'role_name
')"
授予資料庫授權
擁有DBADM
授權的主要使用者可以將 DBADM
、 ACCESSCTRL
或 DATAACCESS
授權授予角色、使用者或群組。
授予資料庫授權
-
使用 RDS for 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 for 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')"
-
(選用) 提供額外的授權或權限。下列範例會針對名為
PROD_ROLE
的資料庫,將DBADM
授權授予名為 的角色FUNDPROD
。如需詳細資訊,請參閱rdsadmin.dbadm_grant。db2 "call rdsadmin.dbadm_grant( ?, 'FUNDPROD', 'DBADM', 'ROLE PROD_ROLE')"
-
終止您的工作階段。
db2 terminate
-
使用 RDS for 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 for 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
')"