Octroi et révocation de privilèges pour RDS for Db2 - Amazon Relational Database Service

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

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.

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_username et master_password 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
  2. Ajoutez un utilisateur à votre liste d’autorisation en appelant rdsadmin.add_user. Pour plus d’informations, consultez rdsadmin.add_user.

    db2 "call rdsadmin.add_user( 'username', 'password', 'group_name,group_name')"
  3. (Facultatif) Ajoutez des groupes supplémentaires à l’utilisateur en appelant rdsadmin.add_groups. Pour plus d’informations, consultez rdsadmin.add_groups.

    db2 "call rdsadmin.add_groups( 'username', 'group_name,group_name')"
  4. Vérifiez les autorisations dont dispose l’utilisateur. Dans l'exemple suivant, remplacez rds_database_aliasmaster_user, et master_password 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
  5. 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.

    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_namemaster_user, et master_password par vos propres informations.

      db2 connect to database_name user master_user using master_password
    2. Accordez le rôle ROLE_NULLED_PACKAGES à un groupe. Dans l'exemple suivant, remplacez group_name par le nom du groupe auquel vous souhaitez ajouter le rôle.

      db2 "grant role ROLE_NULLID_PACKAGES to group group_name"
    3. Accordez le rôle ROLE_TABLESPACES au même groupe. Dans l'exemple suivant, remplacez group_name par le nom du groupe auquel vous souhaitez ajouter le rôle.

      db2 "grant role ROLE_TABLESPACES to group group_name"
    4. Accordez le rôle ROLE_PROCEDURES au même groupe. Dans l'exemple suivant, remplacez group_name par le nom du groupe auquel vous souhaitez ajouter le rôle.

      db2 "grant role ROLE_PROCEDURES to group group_name"
  6. Accordez les autorités connect, bindadd, createtab et IMPLICIT_SCHEMA au groupe auquel vous avez ajouté l’utilisateur. Dans l'exemple suivant, remplacez group_name 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"
  7. Répétez les étapes 4 à 6 pour chaque groupe supplémentaire auquel vous avez ajouté l’utilisateur.

  8. 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_database_aliasusername, 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_username et master_password par vos propres informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Modifiez le mot de passe en appelant rdsadmin.change_password. Pour plus d’informations, consultez rdsadmin.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_username et master_password par vos propres informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Ajoutez des groupes à un utilisateur en appelant rdsadmin.add_groups. Pour plus d’informations, consultez rdsadmin.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_username et master_password par vos propres informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Supprimez des groupes en appelant rdsadmin.remove_groups. Pour plus d’informations, consultez rdsadmin.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_username et master_password par vos propres informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Supprimez un utilisateur de votre liste d’autorisation en appelant rdsadmin.remove_user. Pour plus d’informations, consultez rdsadmin.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_users.

db2 "call rdsadmin.list_users()"

Création d'un rôle

Vous pouvez utiliser la procédure stockée rdsadmin.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_username et master_password par vos informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Configurez Db2 pour qu’il affiche le contenu.

    db2 set serveroutput on
  3. Créez un rôle. Pour plus d’informations, consultez rdsadmin.create_role.

    db2 "call rdsadmin.create_role( 'database_name', 'role_name')"
  4. 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_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_username et master_password par vos informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Configurez Db2 pour qu’il affiche le contenu.

    db2 set serveroutput on
  3. Attribuez un rôle. Pour plus d’informations, consultez rdsadmin.grant_role.

    db2 "call rdsadmin.grant_role( 'database_name', 'role_name', 'grantee', 'admin_option')"
  4. 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_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_username et master_password par vos informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Révoquez un rôle. Pour plus d’informations, consultez rdsadmin.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_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_username et master_password par vos informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Supprimez un rôle. Pour plus d’informations, consultez rdsadmin.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_username et master_password par vos propres informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Accordez l’accès à un utilisateur en appelant rdsadmin.dbadm_grant. Pour plus d’informations, consultez rdsadmin.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_username et master_password par vos propres informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Créez un rôle appelé PROD_ROLE pour une base de données appelée TESTDB. Pour plus d’informations, consultez rdsadmin.create_role.

    db2 "call rdsadmin.create_role( 'TESTDB', 'PROD_ROLE')"
  3. 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_role.

    db2 "call rdsadmin.grant_role( ?, 'TESTDB', 'PROD_ROLE', 'USER PROD_USER', 'Y')"
  4. (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éeFUNDPROD. Pour plus d’informations, consultez rdsadmin.dbadm_grant.

    db2 "call rdsadmin.dbadm_grant( ?, 'FUNDPROD', 'DBADM', 'ROLE PROD_ROLE')"
  5. Mettez fin à votre séance.

    db2 terminate
  6. 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_username et master_password par vos propres informations.

    db2 connect to TESTDB user master_username using master_password
  7. Ajoutez d’autres autorisations au rôle.

    db2 "grant connect, implicit_schema on database to role PROD_ROLE"
  8. 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_username et master_password par vos propres informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Révoquez l’accès de l’utilisateur en appelant rdsadmin.dbadm_revoke. Pour plus d’informations, consultez rdsadmin.dbadm_revoke.

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