

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Octroi et révocation de privilèges pour RDS for Db2
Octroi et révocation de privilèges

Les utilisateurs accèdent aux bases de données par le biais de l’appartenance à des groupes attachés aux bases de données.

Utilisez les procédures suivantes pour accorder et révoquer des privilèges afin de contrôler l’accès à votre base de données. 

Ces procédures utilisent IBM Db2 CLP exécuté sur une machine locale pour se connecter à une instance de base de données RDS for Db2. Assurez-vous de cataloguer le nœud TCP/IP et la base de données pour vous connecter à votre instance de base de données RDS for Db2 exécutée sur votre machine locale. Pour plus d’informations, consultez [Connexion à votre instance de base de données Amazon RDS for Db2 avec IBM Db2 CLP](db2-connecting-with-clp-client.md).

**Topics**
+ [

## Octroi à un utilisateur l’accès à votre base de données
](#db2-granting-user-access)
+ [

## Modification du mot de passe d’un utilisateur
](#db2-changing-user-password)
+ [

## Ajout de groupes à un utilisateur
](#db2-adding-group-to-user)
+ [

## Suppression des groupes d’un utilisateur
](#db2-removing-groups-from-user)
+ [

## Suppression d’un utilisateur
](#db2-removing-user)
+ [

## Affichage d’une liste d’utilisateurs
](#db2-listing-users-database)
+ [

## Création d'un rôle
](#db2-creating-role)
+ [

## Octroi d’un rôle
](#db2-granting-role)
+ [

## Révocation d’un rôle
](#db2-revoking-role)
+ [

## Suppression d’un rôle
](#db2-dropping-role)
+ [

## Octroi des autorisations de base de donnée
](#db2-granting-dbadmin-auth)
+ [

## Révocation de l’autorisation de base de données
](#db2-revoking-dbadmin-auth)

## Octroi à un utilisateur l’accès à votre base de données


**Pour accorder à un utilisateur l’accès à votre base de données**

1. Connectez-vous à la base de données `rdsadmin` à l’aide du nom d’utilisateur principal et du mot de passe principal de votre instance de base de données RDS for Db2. Dans l'exemple suivant, remplacez *master\$1username* et *master\$1password* par vos propres informations.

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

   Le résultat produit lors de l’exécution de cette commande est semblable à l’exemple suivant :

   ```
   Database Connection Information
       
   Database server        = DB2/LINUXX8664 11.5.8.0
   SQL authorization ID   = ADMIN
   Local database alias   = RDSADMIN
   ```

1. Ajoutez un utilisateur à votre liste d’autorisation en appelant `rdsadmin.add_user`. Pour plus d’informations, consultez [rdsadmin.add\$1user](db2-sp-granting-revoking-privileges.md#db2-sp-add-user). 

   ```
   db2 "call rdsadmin.add_user(
       'username',
       'password',
       'group_name,group_name')"
   ```

1. (Facultatif) Ajoutez des groupes supplémentaires à l’utilisateur en appelant `rdsadmin.add_groups`. Pour plus d’informations, consultez [rdsadmin.add\$1groups](db2-sp-granting-revoking-privileges.md#db2-sp-add-groups). 

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

1. Vérifiez les autorisations dont dispose l’utilisateur. Dans l'exemple suivant, remplacez *rds\$1database\$1alias**master\$1user*, et *master\$1password* par vos propres informations. Remplacez également *username* par le nom d'utilisateur de l'utilisateur.

   ```
   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"
   ```

   Le résultat produit lors de l’exécution de cette commande est semblable à l’exemple suivant :

   ```
   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
   ```

1. Accordez les rôles RDS for Db2 pour `ROLE_NULLID_PACKAGES`, `ROLE_TABLESPACES` et `ROLE_PROCEDURES` au groupe auquel vous avez ajouté l’utilisateur. Pour plus d’informations, consultez [Rôles par défaut d’Amazon RDS for Db2](db2-default-roles.md).
**Note**  
Nous créons des instances de base de données RDS for Db2 en mode `RESTRICTIVE`. Par conséquent, les rôles RDS for Db2 `ROLE_NULLID_PACKAGES`, `ROLE_TABLESPACES` et `ROLE_PROCEDURES` accorde des privilèges d’exécution sur les packages `NULLID` pour IBM Db2 CLP et Dynamic SQL. Ces rôles accordent également des privilèges aux utilisateurs sur les tablespaces. 

   1. Connectez-vous à votre base de données Db2. Dans l'exemple suivant, remplacez *database\$1name**master\$1user*, et *master\$1password* par vos propres informations.

      ```
      db2 connect to database_name user master_user using master_password
      ```

   1. Accordez le rôle `ROLE_NULLED_PACKAGES` à un groupe. Dans l'exemple suivant, remplacez *group\$1name* par le nom du groupe auquel vous souhaitez ajouter le rôle.

      ```
      db2 "grant role ROLE_NULLID_PACKAGES to group group_name"
      ```

   1. Accordez le rôle `ROLE_TABLESPACES` au même groupe. Dans l'exemple suivant, remplacez *group\$1name* par le nom du groupe auquel vous souhaitez ajouter le rôle.

      ```
      db2 "grant role ROLE_TABLESPACES to group group_name"
      ```

   1. Accordez le rôle `ROLE_PROCEDURES` au même groupe. Dans l'exemple suivant, remplacez *group\$1name* par le nom du groupe auquel vous souhaitez ajouter le rôle.

      ```
      db2 "grant role ROLE_PROCEDURES to group group_name"
      ```

1. Accordez les autorités `connect`, `bindadd`, `createtab` et `IMPLICIT_SCHEMA` au groupe auquel vous avez ajouté l’utilisateur. Dans l'exemple suivant, remplacez *group\$1name* par le nom du deuxième groupe auquel vous avez ajouté l'utilisateur.

   ```
   db2 "grant usage on workload SYSDEFAULTUSERWORKLOAD to public"
   db2 "grant connect, bindadd, createtab, implicit_schema on database to group group_name"
   ```

1. Répétez les étapes 4 à 6 pour chaque groupe supplémentaire auquel vous avez ajouté l’utilisateur.

1. Testez l’accès de l’utilisateur en vous connectant en tant qu’utilisateur, en créant une table, en insérant des valeurs dans la table et en renvoyant les données de la table. Dans l'exemple suivant, remplacez *rds\$1database\$1alias**username*, et *password* par le nom de la base de données ainsi que le nom d'utilisateur et le mot de passe de l'utilisateur.

   ```
   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"
   ```

## Modification du mot de passe d’un utilisateur


**Pour modifier le mot de passe d’un utilisateur**

1. Connectez-vous à la base de données `rdsadmin` à l’aide du nom d’utilisateur principal et du mot de passe principal de votre instance de base de données RDS for Db2. Dans l'exemple suivant, remplacez *master\$1username* et *master\$1password* par vos propres informations. 

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Modifiez le mot de passe en appelant `rdsadmin.change_password`. Pour plus d’informations, consultez [rdsadmin.change\$1password](db2-sp-granting-revoking-privileges.md#db2-sp-change-password). 

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

## Ajout de groupes à un utilisateur


**Pour ajouter des groupes à un utilisateur**

1. Connectez-vous à la base de données `rdsadmin` à l’aide du nom d’utilisateur principal et du mot de passe principal de votre instance de base de données RDS for Db2. Dans l'exemple suivant, remplacez *master\$1username* et *master\$1password* par vos propres informations. 

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Ajoutez des groupes à un utilisateur en appelant `rdsadmin.add_groups`. Pour plus d’informations, consultez [rdsadmin.add\$1groups](db2-sp-granting-revoking-privileges.md#db2-sp-add-groups). 

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

## Suppression des groupes d’un utilisateur


**Suppression de groupes d’un utilisateur**

1. Connectez-vous à la base de données `rdsadmin` à l’aide du nom d’utilisateur principal et du mot de passe principal de votre instance de base de données RDS for Db2. Dans l'exemple suivant, remplacez *master\$1username* et *master\$1password* par vos propres informations. 

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Supprimez des groupes en appelant `rdsadmin.remove_groups`. Pour plus d’informations, consultez [rdsadmin.remove\$1groups](db2-sp-granting-revoking-privileges.md#db2-sp-remove-groups). 

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

## Suppression d’un utilisateur


**Suppression d’un utilisateur de la liste d’autorisations**

1. Connectez-vous à la base de données `rdsadmin` à l’aide du nom d’utilisateur principal et du mot de passe principal de votre instance de base de données RDS for Db2. Dans l'exemple suivant, remplacez *master\$1username* et *master\$1password* par vos propres informations. 

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Supprimez un utilisateur de votre liste d’autorisation en appelant `rdsadmin.remove_user`. Pour plus d’informations, consultez [rdsadmin.remove\$1user](db2-sp-granting-revoking-privileges.md#db2-sp-remove-user). 

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

## Affichage d’une liste d’utilisateurs


Pour afficher les utilisateurs sur une liste d’autorisation, appelez la procédure stockée `rdsadmin.list_users`. Pour plus d’informations, consultez [rdsadmin.list\$1users](db2-sp-granting-revoking-privileges.md#db2-sp-list-users).

```
db2 "call rdsadmin.list_users()"
```

## Création d'un rôle


Vous pouvez utiliser la procédure stockée [rdsadmin.create\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-create-role) pour créer un rôle.

**Création d’un rôle**

1. Connectez-vous à la base de données `rdsadmin`. Dans l'exemple suivant, remplacez *master\$1username* et *master\$1password* par vos informations.

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Configurez Db2 pour qu’il affiche le contenu.

   ```
   db2 set serveroutput on 
   ```

1. Créez un rôle. Pour plus d’informations, consultez [rdsadmin.create\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-create-role).

   ```
   db2 "call rdsadmin.create_role(
       'database_name',
       'role_name')"
   ```

1. Configurez Db2 pour qu’il n’affiche le contenu.

   ```
   db2 set serveroutput off
   ```

## Octroi d’un rôle


Vous pouvez utiliser la procédure stockée [rdsadmin.grant\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-grant-role) pour attribuer un rôle à un rôle, à un utilisateur ou à un groupe.

**Attribution d’un rôle**

1. Connectez-vous à la base de données `rdsadmin`. Dans l'exemple suivant, remplacez *master\$1username* et *master\$1password* par vos informations.

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Configurez Db2 pour qu’il affiche le contenu.

   ```
   db2 set serveroutput on 
   ```

1. Attribuez un rôle. Pour plus d’informations, consultez [rdsadmin.grant\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-grant-role).

   ```
   db2 "call rdsadmin.grant_role(
       'database_name',
       'role_name',
       'grantee',
       'admin_option')"
   ```

1. Configurez Db2 pour qu’il n’affiche le contenu.

   ```
   db2 set serveroutput off
   ```

## Révocation d’un rôle


Vous pouvez utiliser la procédure stockée [rdsadmin.revoke\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-revoke-role) pour révoquer un rôle d’un rôle, d’un utilisateur ou d’un groupe.

**Pour révoquer un rôle**

1. Connectez-vous à la base de données `rdsadmin`. Dans l'exemple suivant, remplacez *master\$1username* et *master\$1password* par vos informations.

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Révoquez un rôle. Pour plus d’informations, consultez [rdsadmin.revoke\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-revoke-role).

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

## Suppression d’un rôle


Vous pouvez utiliser la procédure stockée [rdsadmin.drop\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-drop-role) pour supprimer un rôle.

**Pour supprimer un rôle**

1. Connectez-vous à la base de données `rdsadmin`. Dans l'exemple suivant, remplacez *master\$1username* et *master\$1password* par vos informations.

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Supprimez un rôle. Pour plus d’informations, consultez [rdsadmin.drop\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-drop-role).

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

## Octroi des autorisations de base de donnée


L’utilisateur principal, qui dispose de l’autorisation `DBADM`, peut octroyer l’autorisation `DBADM`, `ACCESSCTRL` ou `DATAACCESS` à un rôle, un utilisateur ou un groupe.

**Pour accorder des autorisations de base de donnée**

1. Connectez-vous à la base de données `rdsadmin` à l’aide du nom d’utilisateur principal et du mot de passe principal de votre instance de base de données RDS for Db2. Dans l'exemple suivant, remplacez *master\$1username* et *master\$1password* par vos propres informations.

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Accordez l’accès à un utilisateur en appelant `rdsadmin.dbadm_grant`. Pour plus d’informations, consultez [rdsadmin.dbadm\$1grant](db2-sp-granting-revoking-privileges.md#db2-sp-dbadm-grant). 

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

**Exemple de cas d’utilisation**

La procédure suivante explique comment créer un rôle, octroyer une autorisation `DBADM` au rôle, attribuer le rôle à un utilisateur et octroyer le rôle à un groupe.

****

1. Connectez-vous à la base de données `rdsadmin` à l’aide du nom d’utilisateur principal et du mot de passe principal de votre instance de base de données RDS for Db2. Dans l'exemple suivant, remplacez *master\$1username* et *master\$1password* par vos propres informations.

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Créez un rôle appelé `PROD_ROLE` pour une base de données appelée `TESTDB`. Pour plus d’informations, consultez [rdsadmin.create\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-create-role). 

   ```
   db2 "call rdsadmin.create_role(
       'TESTDB',
       'PROD_ROLE')"
   ```

1. Attribuez le rôle à un utilisateur appelé `PROD_USER`. Le `PROD_USER` reçoit l’autorisation d’attribuer des rôles. Pour plus d’informations, consultez [rdsadmin.grant\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-grant-role). 

   ```
   db2 "call rdsadmin.grant_role(
       ?,
       'TESTDB',
       'PROD_ROLE',
       'USER PROD_USER',
       'Y')"
   ```

1. (Facultatif) Fournissez des autorisations ou des privilèges supplémentaires. L’exemple suivant octroie l’autorisation `DBADM` à un rôle nommé `PROD_ROLE` pour une base de données appelée`FUNDPROD`. Pour plus d’informations, consultez [rdsadmin.dbadm\$1grant](db2-sp-granting-revoking-privileges.md#db2-sp-dbadm-grant). 

   ```
   db2 "call rdsadmin.dbadm_grant(
       ?,
       'FUNDPROD',
       'DBADM',
       'ROLE PROD_ROLE')"
   ```

1. Mettez fin à votre séance.

   ```
   db2 terminate
   ```

1. Connectez-vous à la base de données `TESTDB` à l’aide du nom d’utilisateur principal et du mot de passe principal de votre instance de base de données RDS for Db2. Dans l'exemple suivant, remplacez *master\$1username* et *master\$1password* par vos propres informations.

   ```
   db2 connect to TESTDB user master_username using master_password
   ```

1. Ajoutez d’autres autorisations au rôle.

   ```
   db2 "grant connect, implicit_schema on database to role PROD_ROLE"
   ```

1. Accordez le rôle `PROD_ROLE` à un groupe.

   ```
   db2 "grant role PROD_ROLE to group PRODGRP"
   ```

Les utilisateurs appartenant au groupe `PRODGRP` peuvent désormais effectuer des actions telles que la connexion à la base de données `TESTDB`, la création de tables ou la création de schémas.

## Révocation de l’autorisation de base de données


L’utilisateur principal, qui dispose de l’autorisation `DBADM`, peut révoquer l’autorisation `DBADM`, `ACCESSCTRL` ou `DATAACCESS` d’un rôle, d’un utilisateur ou d’un groupe.

**Pour révoquer l’autorisation de base de données**

1. Connectez-vous à la base de données `rdsadmin` à l’aide du nom d’utilisateur principal et du mot de passe principal de votre instance de base de données RDS for Db2. Dans l'exemple suivant, remplacez *master\$1username* et *master\$1password* par vos propres informations.

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Révoquez l’accès de l’utilisateur en appelant `rdsadmin.dbadm_revoke`. Pour plus d’informations, consultez [rdsadmin.dbadm\$1revoke](db2-sp-granting-revoking-privileges.md#db2-sp-dbadm-revoke). 

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