

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.

# Exécution des tâches système courantes pour les instances de base de données RDS for Db2
<a name="db2-performing-common-system-tasks-db-instances"></a>

Vous pouvez effectuer certaines tâches d’administrateur de base de données courantes liées au système sur vos instances de base de données Amazon RDS en exécutant Db2. Pour offrir une expérience de service géré, Amazon RDS ne fournit pas l'accès shell aux instances de base de données et limite l'accès à certaines tables et procédures système qui requièrent des privilèges avancés. 

Pour plus d’informations sur l’octroi et la révocation de privilèges et sur l’attachement à la base de données distante pour RDS for Db2, consultez les rubriques suivantes.

**Rubriques**
+ [Octroi et révocation de privilèges pour RDS for Db2](db2-granting-revoking-privileges.md)
+ [Connexion à l’instance de base de données RDS for Db2 distante](db2-attaching-to-remote.md)

## Création d’un point de terminaison de base de données personnalisé
<a name="db2-creating-custom-database-endpoint"></a>

Lorsque vous migrez vers Amazon RDS pour DB2, vous pouvez utiliser un point de terminaison de base de données personnalisé URLs afin de minimiser les modifications apportées à votre application. Par exemple, si vous utilisez `db2.example.com` comme enregistrement DNS actuel, vous pouvez l’ajouter à Amazon Route 53. Dans Route 53, vous pouvez utiliser des zones hébergées privées pour mapper le point de terminaison de votre base de données DNS actuel à un point de terminaison de base de données RDS for Db2. Pour ajouter un enregistrement `A` ou `CNAME` pour un point de terminaison de base de données Amazon RDS, consultez [Enregistrement et gestion de domaines à l’aide d’Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar.html) dans le *Guide du développeur Amazon Route 53*.

**Note**  
Si vous ne parvenez pas à transférer votre domaine vers Route 53, vous pouvez utiliser votre fournisseur DNS pour créer un enregistrement `CNAME` pour l’URL du point de terminaison de base de données RDS for Db2. Consultez la documentation de votre fournisseur DNS.

# Octroi et révocation de privilèges pour RDS for Db2
<a name="db2-granting-revoking-privileges"></a>

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
<a name="db2-granting-user-access"></a>

**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
<a name="db2-changing-user-password"></a>

**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
<a name="db2-adding-group-to-user"></a>

**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
<a name="db2-removing-groups-from-user"></a>

**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
<a name="db2-removing-user"></a>

**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
<a name="db2-listing-users-database"></a>

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
<a name="db2-creating-role"></a>

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
<a name="db2-granting-role"></a>

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
<a name="db2-revoking-role"></a>

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
<a name="db2-dropping-role"></a>

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
<a name="db2-granting-dbadmin-auth"></a>

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
<a name="db2-revoking-dbadmin-auth"></a>

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

# Connexion à l’instance de base de données RDS for Db2 distante
<a name="db2-attaching-to-remote"></a>

Suivez les étapes suivantes pour vous connecter à votre instance de base de données RDS for Db2 distante et exécutez les opérations `get snapshot`.

**Se connecter à l’instance de base de données RDS for Db2 distante**

1. Exécutez une session côté client IBM Db2 CLP. Pour plus d’informations sur le catalogage de votre instance de base de données RDS for Db2 et votre base de données, consultez [Connexion à votre instance de base de données Amazon RDS for Db2 avec IBM Db2 CLP](db2-connecting-with-clp-client.md). Notez le nom d’utilisateur principal et le mot de passe principal de votre instance de base de données RDS for Db2.

1. Connectez-vous à l’instance de base de données RDS for Db2. Dans l'exemple suivant, remplacez *node\$1name**master\$1username*, et *master\$1password* par le nom du nœud TCP/IP que vous avez catalogué ainsi que le nom d'utilisateur principal et le mot de passe principal de votre instance de base de données RDS pour DB2.

   ```
   db2 attach to node_name user master_username using master_password
   ```

Après vous être connecté à l’instance de base de données RDS for Db2 distante, vous pouvez exécuter les commandes suivantes et d’autres commandes `get snapshot`. Pour plus d’informations, consultez [Commande GET SNAPSHOT](https://www.ibm.com/docs/en/db2/11.5?topic=commands-get-snapshot) dans la documentation IBM Db2.

```
db2 list applications
db2 get snapshot for all databases
db2 get snapshot for database manager
db2 get snapshot for all applications
```