授予和撤銷 RDS for Db2 的權限 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

授予和撤銷 RDS for Db2 的權限

使用者可透過連接到資料庫之群組的成員資格來存取資料庫。

使用下列程序來授予和撤銷許可,以控制對資料庫的存取。

這些程序使用本機電腦上IBM Db2 CLP執行的 來連線至 RDS for Db2 資料庫執行個體。請務必為 TCPIP 節點和資料庫編製目錄,以連線至本機電腦上執行的 RDS for Db2 資料庫執行個體。如需詳細資訊,請參閱使用以下方式連接到您的 Amazon RDS 適用於 Db2 資料庫 IBM Db2 CLP

授予使用者存取資料庫的權限

授予使用者存取資料庫的權限
  1. 使用 RDS for Db2 rdsadmin 資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,將 master_usernamemaster_password 取代為您自己的資訊。

    db2 connect to rdsadmin user master_username using master_password

    此命令會產生類似下列範例的輸出:

    Database Connection Information Database server = DB2/LINUXX8664 11.5.8.0 SQL authorization ID = ADMIN Local database alias = RDSADMIN
  2. 呼叫 ,將使用者新增至您的授權清單rdsadmin.add_user。如需詳細資訊,請參閱rdsadmin.add_user

    db2 "call rdsadmin.add_user( 'username', 'password', 'group_name,group_name')"
  3. (選用) 呼叫 ,將其他群組新增至使用者rdsadmin.add_groups。如需詳細資訊,請參閱rdsadmin.add_groups

    db2 "call rdsadmin.add_groups( 'username', 'group_name,group_name')"
  4. 確認使用者可用的授權單位。在下列範例中,將 rds_database_aliasmaster_usermaster_password 取代為您自己的資訊。此外,請將使用者名稱取代為使用者的使用者名稱。

    db2 terminate db2 connect to rds_database_alias user master_user using master_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
  5. 將 RDS for Db2 角色 ROLE_NULLID_PACKAGESROLE_TABLESPACESROLE_PROCEDURES 授予您新增使用者的群組。如需詳細資訊,請參閱RDS適用於 Db2 的 Amazon 預設角色

    注意

    我們會在 RESTRICTIVE 模式中建立 RDS for Db2 資料庫執行個體。因此,RDS for Db2 角色 ROLE_NULLID_PACKAGESROLE_TABLESPACES和 會ROLE_PROCEDURES授予 IBM Db2 CLP和 NULLID套件的執行權限Dynamic SQL。這些角色也會授予資料表空間的使用者權限。

    1. 連接至您的 Db2 資料庫。在下列範例中,將 database_namemaster_usermaster_password 取代為您自己的資訊。

      db2 connect to database_name user master_user using master_password
    2. 將角色授予ROLE_NULLED_PACKAGES群組。在下列範例中,將 group_name 取代為您要新增角色的群組名稱。

      db2 "grant role ROLE_NULLID_PACKAGES to group group_name"
    3. 將角色授予ROLE_TABLESPACES相同的群組。在下列範例中,將 group_name 取代為您要新增角色的群組名稱。

      db2 "grant role ROLE_TABLESPACES to group group_name"
    4. 將角色授予ROLE_PROCEDURES相同的群組。在下列範例中,將 group_name 取代為您要新增角色的群組名稱。

      db2 "grant role ROLE_PROCEDURES to group group_name"
  6. connectcreatetabbindaddIMPLICIT_SCHEMA授權授予您新增使用者的 群組。在下列範例中,將 group_name 取代為您新增使用者的第二個群組名稱。

    db2 "grant usage on workload SYSDEFAULTUSERWORKLOAD to public" db2 "grant connect, bindadd, createtab, implicit_schema on database to group group_name"
  7. 為您新增使用者的每個額外群組重複步驟 4 到 6。

  8. 以使用者身分連線、建立資料表、將值插入資料表,以及從資料表傳回資料,以測試使用者的存取權。在下列範例中,將 rds_database_alias使用者名稱和密碼取代為資料庫的名稱和使用者的使用者名稱和密碼。

    db2 connect to rds_database_alias user username using password db2 "create table t1(c1 int not null)" db2 "insert into t1 values (1),(2),(3),(4)" db2 "select * from t1"

變更使用者的密碼

變更使用者的密碼
  1. 使用 RDS for Db2 rdsadmin 資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,將 master_usernamemaster_password 取代為您自己的資訊。

    db2 connect to rdsadmin user master_username using master_password
  2. 呼叫 來變更密碼rdsadmin.change_password。如需詳細資訊,請參閱rdsadmin.change_password

    db2 "call rdsadmin.change_password( 'username', 'new_password')"

將群組新增至使用者

將群組新增至使用者
  1. 使用 RDS for Db2 rdsadmin 資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,將 master_usernamemaster_password 取代為您自己的資訊。

    db2 connect to rdsadmin user master_username using master_password
  2. 呼叫 ,將群組新增至使用者rdsadmin.add_groups。如需詳細資訊,請參閱rdsadmin.add_groups

    db2 "call rdsadmin.add_groups( 'username', 'group_name,group_name')"

從使用者移除群組

從使用者移除群組
  1. 使用 RDS for Db2 rdsadmin 資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,將 master_usernamemaster_password 取代為您自己的資訊。

    db2 connect to rdsadmin user master_username using master_password
  2. 呼叫 以移除群組rdsadmin.remove_groups。如需詳細資訊,請參閱rdsadmin.remove_groups

    db2 "call rdsadmin.remove_groups( 'username', 'group_name,group_name')"

移除使用者

從授權清單中移除使用者
  1. 使用 RDS for Db2 rdsadmin 資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,將 master_usernamemaster_password 取代為您自己的資訊。

    db2 connect to rdsadmin user master_username using master_password
  2. 呼叫 ,從授權清單中移除使用者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預存程序來建立角色。

建立角色
  1. 連線至rdsadmin資料庫。在下列範例中,將 master_usernamemaster_password 取代為您的資訊。

    db2 connect to rdsadmin user master_username using master_password
  2. 將 Db2 設定為輸出內容。

    db2 set serveroutput on
  3. 建立角色。如需詳細資訊,請參閱rdsadmin.create_role

    db2 "call rdsadmin.create_role( 'database_name', 'role_name')"
  4. 將 Db2 設定為不輸出內容。

    db2 set serveroutput off

授予角色

您可以使用rdsadmin.grant_role預存程序將角色指派給角色、使用者或群組。

指派角色
  1. 連線至rdsadmin資料庫。在下列範例中,將 master_usernamemaster_password 取代為您的資訊。

    db2 connect to rdsadmin user master_username using master_password
  2. 將 Db2 設定為輸出內容。

    db2 set serveroutput on
  3. 指派角色。如需詳細資訊,請參閱rdsadmin.grant_role

    db2 "call rdsadmin.grant_role( 'database_name', 'role_name', 'grantee', 'admin_option')"
  4. 將 Db2 設定為不輸出內容。

    db2 set serveroutput off

撤銷角色

您可以使用rdsadmin.revoke_role預存程序從角色、使用者或群組撤銷角色。

撤銷角色
  1. 連線至rdsadmin資料庫。在下列範例中,將 master_usernamemaster_password 取代為您的資訊。

    db2 connect to rdsadmin user master_username using master_password
  2. 撤銷角色。如需詳細資訊,請參閱rdsadmin.revoke_role

    db2 "call rdsadmin.revoke_role( ?, 'database_name', 'role_name', 'grantee')"

捨棄角色

您可以使用rdsadmin.drop_role預存程序來捨棄角色。

捨棄角色
  1. 連線至rdsadmin資料庫。在下列範例中,將 master_usernamemaster_password 取代為您的資訊。

    db2 connect to rdsadmin user master_username using master_password
  2. 捨棄角色。如需詳細資訊,請參閱rdsadmin.drop_role

    db2 "call rdsadmin.drop_role( ?, 'database_name', 'role_name')"

授予資料庫授權

擁有DBADM授權的主要使用者可以將 DBADMACCESSCTRLDATAACCESS授權授予角色、使用者或群組。

授予資料庫授權
  1. 使用 RDS for Db2 rdsadmin 資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,將 master_usernamemaster_password 取代為您自己的資訊。

    db2 connect to rdsadmin user master_username using master_password
  2. 呼叫 授予使用者存取權rdsadmin.dbadm_grant。如需詳細資訊,請參閱rdsadmin.dbadm_grant

    db2 "call rdsadmin.dbadm_grant( ?, 'database_name, 'authorization', 'grantee')"

範例使用案例

下列程序會逐步引導您建立角色、授予角色DBADM授權、將角色指派給使用者,以及將角色授予群組。

  1. 使用 RDS for Db2 rdsadmin 資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,將 master_usernamemaster_password 取代為您自己的資訊。

    db2 connect to rdsadmin user master_username using master_password
  2. 為名為 PROD_ROLE 的資料庫建立名為 的角色TESTDB。如需詳細資訊,請參閱rdsadmin.create_role

    db2 "call rdsadmin.create_role( 'TESTDB', 'PROD_ROLE')"
  3. 將角色指派給名為 的使用者PROD_USERPROD_USER 獲得指派角色的管理員授權。如需詳細資訊,請參閱rdsadmin.grant_role

    db2 "call rdsadmin.grant_role( ?, 'TESTDB', 'PROD_ROLE', 'USER PROD_USER', 'Y')"
  4. (選用) 提供額外的授權或權限。下列範例會針對名為 PROD_ROLE的資料庫,將DBADM授權授予名為 的角色FUNDPROD。如需詳細資訊,請參閱rdsadmin.dbadm_grant

    db2 "call rdsadmin.dbadm_grant( ?, 'FUNDPROD', 'DBADM', 'ROLE PROD_ROLE')"
  5. 終止您的工作階段。

    db2 terminate
  6. 使用 RDS for Db2 TESTDB 資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,將 master_usernamemaster_password 取代為您自己的資訊。

    db2 connect to TESTDB user master_username using master_password
  7. 將更多授權新增至角色。

    db2 "grant connect, implicit_schema on database to role PROD_ROLE"
  8. 將角色授予PROD_ROLE群組。

    db2 "grant role PROD_ROLE to group PRODGRP"

屬於 群組的使用者PRODGRP現在可以執行動作,例如連線至TESTDB資料庫、建立資料表或建立結構描述。

撤銷資料庫授權

擁有DBADM授權的主要使用者可以撤銷角色DBADMACCESSCTRL、使用者或群組的 、 或 DATAACCESS授權。

撤銷資料庫授權
  1. 使用 RDS for Db2 rdsadmin 資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,將 master_usernamemaster_password 取代為您自己的資訊。

    db2 connect to rdsadmin user master_username using master_password
  2. 呼叫 來撤銷使用者存取權rdsadmin.dbadm_revoke。如需詳細資訊,請參閱rdsadmin.dbadm_revoke

    db2 "call rdsadmin.dbadm_revoke( ?, 'database_name, 'authorization', 'grantee')"