Concessione e revoca dei privilegi per Db2 RDS - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Concessione e revoca dei privilegi per Db2 RDS

Gli utenti ottengono l'accesso ai database tramite l'appartenenza a gruppi collegati ai database.

Utilizza le seguenti procedure per concedere e revocare i privilegi per controllare l'accesso al database.

Queste procedure utilizzano IBM Db2 CLP in esecuzione su un computer locale per connettersi a un'istanza DB RDS for Db2. Assicurati di catalogare il TCPIP nodo e il database per connetterti alla tua istanza DB RDS per Db2 in esecuzione sul tuo computer locale. Per ulteriori informazioni, consulta Connessione alla tua istanza database Amazon RDS for Db2 con IBM Db2 CLP.

Concedere a un utente l'accesso al database

Per concedere a un utente l'accesso al tuo database
  1. Connect al rdsadmin database utilizzando il nome utente principale e la password principale per l'istanza database RDS for Db2. Nell'esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 connect to rdsadmin user master_username using master_password

    Questo comando produce un output simile all'esempio seguente:

    Database Connection Information Database server = DB2/LINUXX8664 11.5.8.0 SQL authorization ID = ADMIN Local database alias = RDSADMIN
  2. Aggiungi un utente alla tua lista di autorizzazioni chiamandordsadmin.add_user. Per ulteriori informazioni, consulta rdsadmin.add_user.

    db2 "call rdsadmin.add_user( 'username', 'password', 'group_name,group_name')"
  3. (Facoltativo) Aggiungi altri gruppi all'utente chiamandordsadmin.add_groups. Per ulteriori informazioni, consulta rdsadmin.add_groups.

    db2 "call rdsadmin.add_groups( 'username', 'group_name,group_name')"
  4. Conferma le autorità disponibili per l'utente. Nell'esempio seguente rds_database_aliasmaster_user, sostituisci e master_password con le tue informazioni. Inoltre, username sostituiscilo con il nome utente dell'utente.

    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"

    Questo comando produce un output simile all'esempio seguente:

    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. Concedi i ruoli RDS ROLE_NULLID_PACKAGES per Db2 e ROLE_PROCEDURES al gruppo a cui hai aggiunto l'utente. ROLE_TABLESPACES Per ulteriori informazioni, consulta Ruoli predefiniti di Amazon RDS for Db2.

    Nota

    Creiamo istanze DB RDS per Db2 in modalità. RESTRICTIVE Pertanto, RDS per i ruoli Db2 e ROLE_NULLID_PACKAGES ROLE_PROCEDURES concediamo ROLE_TABLESPACES i privilegi di esecuzione sui pacchetti per NULLID IBM Db2 CLP e Dynamic SQL. Questi ruoli concedono anche i privilegi utente sui tablespace.

    1. Connect al database Db2. Nell'esempio seguente database_namemaster_user, sostituisci e master_password con le tue informazioni.

      db2 connect to database_name user master_user using master_password
    2. Assegna il ruolo ROLE_NULLED_PACKAGES a un gruppo. Nell'esempio seguente, sostituiscilo group_name con il nome del gruppo a cui desideri aggiungere il ruolo.

      db2 "grant role ROLE_NULLID_PACKAGES to group group_name"
    3. Assegnate il ruolo ROLE_TABLESPACES allo stesso gruppo. Nell'esempio seguente, sostituiscilo group_name con il nome del gruppo a cui desideri aggiungere il ruolo.

      db2 "grant role ROLE_TABLESPACES to group group_name"
    4. Assegnate il ruolo ROLE_PROCEDURES allo stesso gruppo. Nell'esempio seguente, sostituiscilo group_name con il nome del gruppo a cui desideri aggiungere il ruolo.

      db2 "grant role ROLE_PROCEDURES to group group_name"
  6. Concedi connectbindadd,createtab, e IMPLICIT_SCHEMA autorità al gruppo a cui hai aggiunto l'utente. Nell'esempio seguente, group_name sostituiscilo con il nome del secondo gruppo a cui hai aggiunto l'utente.

    db2 "grant usage on workload SYSDEFAULTUSERWORKLOAD to public" db2 "grant connect, bindadd, createtab, implicit_schema on database to group group_name"
  7. Ripeti i passaggi da 4 a 6 per ogni gruppo aggiuntivo a cui hai aggiunto l'utente.

  8. Verifica l'accesso dell'utente connettendoti come utente, creando una tabella, inserendo valori nella tabella e restituendo dati dalla tabella. Nell'esempio seguente rds_database_aliasusername, sostituisci e password con il nome del database e il nome utente e la password dell'utente.

    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"

Modifica della password di un utente

Per modificare la password di un utente
  1. Connect al rdsadmin database utilizzando il nome utente principale e la password principale per l'istanza database RDS for Db2. Nell'esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 connect to rdsadmin user master_username using master_password
  2. Cambia la password chiamandordsadmin.change_password. Per ulteriori informazioni, consulta rdsadmin.change_password.

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

Aggiungere gruppi a un utente

Per aggiungere gruppi a un utente
  1. Connect al rdsadmin database utilizzando il nome utente principale e la password principale per l'istanza database RDS for Db2. Nell'esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 connect to rdsadmin user master_username using master_password
  2. Aggiungi gruppi a un utente chiamandordsadmin.add_groups. Per ulteriori informazioni, consulta rdsadmin.add_groups.

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

Rimuovere gruppi da un utente

Per rimuovere gruppi da un utente
  1. Connect al rdsadmin database utilizzando il nome utente principale e la password principale per l'istanza database RDS for Db2. Nell'esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 connect to rdsadmin user master_username using master_password
  2. Rimuovi i gruppi chiamandordsadmin.remove_groups. Per ulteriori informazioni, consulta rdsadmin.remove_groups.

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

Rimuovere un utente

Per rimuovere un utente dall'elenco di autorizzazioni
  1. Connect al rdsadmin database utilizzando il nome utente principale e la password principale per l'istanza database RDS for Db2. Nell'esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 connect to rdsadmin user master_username using master_password
  2. Rimuovi un utente dall'elenco di autorizzazioni chiamandordsadmin.remove_user. Per ulteriori informazioni, consulta rdsadmin.remove_user.

    db2 "call rdsadmin.remove_user('username')"

Elencare gli utenti

Per elencare gli utenti in un elenco di autorizzazioni, richiama la rdsadmin.list_users stored procedure. Per ulteriori informazioni, consulta rdsadmin.list_users.

db2 "call rdsadmin.list_users()"

Creazione di un ruolo

È possibile utilizzare la rdsadmin.create_role stored procedure per creare un ruolo.

Per creare un ruolo
  1. Connect al rdsadmin database. Nell'esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 connect to rdsadmin user master_username using master_password
  2. Imposta Db2 per l'output del contenuto.

    db2 set serveroutput on
  3. Creare un ruolo. Per ulteriori informazioni, consulta rdsadmin.create_role.

    db2 "call rdsadmin.create_role( 'database_name', 'role_name')"
  4. Imposta Db2 in modo che non emetta contenuti.

    db2 set serveroutput off

Concessione di un ruolo

È possibile utilizzare la rdsadmin.grant_role stored procedure per assegnare un ruolo a un ruolo, utente o gruppo.

Per assegnare un ruolo
  1. Connect al rdsadmin database. Nell'esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 connect to rdsadmin user master_username using master_password
  2. Imposta Db2 per l'output del contenuto.

    db2 set serveroutput on
  3. Assegna un ruolo. Per ulteriori informazioni, consulta rdsadmin.grant_role.

    db2 "call rdsadmin.grant_role( 'database_name', 'role_name', 'grantee', 'admin_option')"
  4. Imposta Db2 in modo che non emetta contenuti.

    db2 set serveroutput off

Revoca di un ruolo

È possibile utilizzare la rdsadmin.revoke_role stored procedure per revocare un ruolo da un ruolo, un utente o un gruppo.

Per revocare un ruolo
  1. Connect al rdsadmin database. Nell'esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 connect to rdsadmin user master_username using master_password
  2. Revoca un ruolo. Per ulteriori informazioni, consulta rdsadmin.revoke_role.

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

Eliminare un ruolo

È possibile utilizzare la rdsadmin.drop_role stored procedure per eliminare un ruolo.

Eliminare un ruolo
  1. Connect al rdsadmin database. Nell'esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 connect to rdsadmin user master_username using master_password
  2. Abbandona un ruolo. Per ulteriori informazioni, consulta rdsadmin.drop_role.

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

Concessione dell'autorizzazione al database

L'utente principale, che dispone dell'DBADMautorizzazione, può concedere DBADM o DATAACCESS autorizzare un ruolo, un utente o un gruppo. ACCESSCTRL

Per concedere l'autorizzazione al database
  1. Connect al rdsadmin database utilizzando il nome utente principale e la password principale per l'istanza database RDS for Db2. Nell'esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 connect to rdsadmin user master_username using master_password
  2. Concedi l'accesso a un utente chiamandordsadmin.dbadm_grant. Per ulteriori informazioni, consulta rdsadmin.dbadm_grant.

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

Esempio di caso d'uso

La procedura seguente illustra come creare un ruolo, concedere DBADM l'autorizzazione al ruolo, assegnare il ruolo a un utente e concedere il ruolo a un gruppo.

  1. Connect al rdsadmin database utilizzando il nome utente principale e la password principale per l'istanza database RDS for Db2. Nell'esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 connect to rdsadmin user master_username using master_password
  2. Crea un ruolo chiamato PROD_ROLE per un database chiamatoTESTDB. Per ulteriori informazioni, consulta rdsadmin.create_role.

    db2 "call rdsadmin.create_role( 'TESTDB', 'PROD_ROLE')"
  3. Assegna il ruolo a un utente chiamatoPROD_USER. PROD_USERViene concessa l'autorizzazione di amministratore per assegnare ruoli. Per ulteriori informazioni, consulta rdsadmin.grant_role.

    db2 "call rdsadmin.grant_role( ?, 'TESTDB', 'PROD_ROLE', 'USER PROD_USER', 'Y')"
  4. (Facoltativo) Fornisci autorizzazioni o privilegi aggiuntivi. L'esempio seguente concede DBADM l'autorizzazione a un ruolo denominato in base PROD_ROLE a un database chiamato. FUNDPROD Per ulteriori informazioni, consulta rdsadmin.dbadm_grant.

    db2 "call rdsadmin.dbadm_grant( ?, 'FUNDPROD', 'DBADM', 'ROLE PROD_ROLE')"
  5. Termina la sessione.

    db2 terminate
  6. Connect al TESTDB database utilizzando il nome utente principale e la password principale per l'istanza database RDS for Db2. Nell'esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 connect to TESTDB user master_username using master_password
  7. Aggiungi altre autorizzazioni al ruolo.

    db2 "grant connect, implicit_schema on database to role PROD_ROLE"
  8. Assegna il ruolo PROD_ROLE a un gruppo.

    db2 "grant role PROD_ROLE to group PRODGRP"

Gli utenti che appartengono al gruppo PRODGRP possono ora eseguire azioni come la connessione al TESTDB database, la creazione di tabelle o la creazione di schemi.

Revoca dell'autorizzazione al database

L'utente principale, che dispone dell'DBADMautorizzazione, può revocare o revocare DBADM DATAACCESS l'autorizzazione a un ruolo, utente o gruppo. ACCESSCTRL

Per revocare l'autorizzazione del database
  1. Connect al rdsadmin database utilizzando il nome utente principale e la password principale per l'istanza database RDS for Db2. Nell'esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 connect to rdsadmin user master_username using master_password
  2. Revoca l'accesso utente chiamando. rdsadmin.dbadm_revoke Per ulteriori informazioni, consulta rdsadmin.dbadm_revoke.

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