Concessione e revoca dei privilegi per RDS per Db2 - 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 RDS per Db2

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 database RDS per Db2. Assicurati di catalogare il nodo TCPIP e il database per connetterti all’istanza database RDS per Db2 in esecuzione sul tuo computer locale. Per ulteriori informazioni, consulta Connessione a un’istanza database Amazon RDS per Db2 con IBM Db2 CLP.

Concessione dell’accesso al database a un utente

Per concedere a un utente l’accesso al tuo database
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per 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 genera 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 all’elenco di autorizzazioni chiamando rdsadmin.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 chiamando rdsadmin.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 genera 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 ROLE_NULLID_PACKAGES, ROLE_TABLESPACES e ROLE_PROCEDURES di RDS per Db2 al gruppo a cui hai aggiunto l’utente. Per ulteriori informazioni, consulta Ruoli predefiniti di Amazon RDS per Db2.

    Nota

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

    1. Connettiti al tuo 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. Assegna 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. Assegna 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 le autorità connect, bindadd, createtab e IMPLICIT_SCHEMA 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. Testa l’accesso dell’utente connettendoti come tale utente, creando una tabella, inserendo valori nella tabella e restituendo dati dalla tabella. Nell'esempio seguente, sostituisci rds_database_aliasusername, 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 cambiare la password di un utente
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per 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 chiamando rdsadmin.change_password. Per ulteriori informazioni, consulta rdsadmin.change_password.

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

Aggiunta di gruppi a un utente

Per aggiungere gruppi a un utente
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per 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 chiamando rdsadmin.add_groups. Per ulteriori informazioni, consulta rdsadmin.add_groups.

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

Rimozione di gruppi da un utente

Per rimuovere gruppi da un utente
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per 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 chiamando rdsadmin.remove_groups. Per ulteriori informazioni, consulta rdsadmin.remove_groups.

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

Rimozione di un utente

Per rimuovere un utente dall’elenco di autorizzazioni
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per 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 chiamando rdsadmin.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, chiama la stored procedure rdsadmin.list_users. Per ulteriori informazioni, consulta rdsadmin.list_users.

db2 "call rdsadmin.list_users()"

Creazione di un ruolo

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

Per creare un ruolo
  1. Connettiti al database rdsadmin. 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 in modo che restituisca il contenuto come output.

    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 restituisca il contenuto come output.

    db2 set serveroutput off

Concessione di un ruolo

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

Per assegnare un ruolo
  1. Connettiti al database rdsadmin. 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 in modo che restituisca il contenuto come output.

    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 restituisca il contenuto come output.

    db2 set serveroutput off

Revoca di un ruolo

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

Per revocare un ruolo
  1. Connettiti al database rdsadmin. 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')"

Eliminazione di un ruolo

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

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

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

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

Concessione dell’autorizzazione per il database

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

Per concedere l’autorizzazione per il database
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per 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 chiamando rdsadmin.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 l’autorizzazione DBADM al ruolo, assegnare il ruolo a un utente e concedere il ruolo a un gruppo.

  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per 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 denominato PROD_ROLE per un database denominato TESTDB. Per ulteriori informazioni, consulta rdsadmin.create_role.

    db2 "call rdsadmin.create_role( 'TESTDB', 'PROD_ROLE')"
  3. Assegna il ruolo a un utente denominato PROD_USER. All’utente PROD_USER viene concessa l’autorizzazione di amministrazione 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 ulteriori autorizzazioni o privilegi. Nell’esempio seguente viene concessa l’autorizzazione DBADM a un ruolo denominato PROD_ROLE per un database denominato 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. Connettiti al database TESTDB utilizzando il nome utente e la password principali dell’istanza database RDS per 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 database TESTDB, la creazione di tabelle o la creazione di schemi.

Revoca dell’autorizzazione per il database

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

Per revocare l’autorizzazione per il database
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per 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')"