Octroi et révocation de privilèges RDS pour 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 RDS pour 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 pour DB2. Assurez-vous de cataloguer le TCPIP nœud et la base de données RDS pour vous connecter à votre instance de base de données Db2 exécutée sur votre machine locale. Pour de plus amples informations, veuillez consulter Connexion à votre instance de base de données Amazon RDS pour DB2 avec IBM Db2 CLP.

Accorder à un utilisateur l'accès à votre base de données

Pour autoriser un utilisateur à accéder à votre base de données
  1. Connectez-vous à la rdsadmin base de données à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez master_username and master_password avec vos propres informations.

    db2 connect to rdsadmin user master_username using master_password

    Cette commande produit une sortie similaire à 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 appelantrdsadmin.add_user. Pour de plus amples informations, veuillez consulter rdsadmin.add_user.

    db2 "call rdsadmin.add_user( 'username', 'password', 'group_name,group_name')"
  3. (Facultatif) Ajoutez des groupes supplémentaires à l'utilisateur en appelantrdsadmin.add_groups. Pour de plus amples informations, veuillez consulter 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_alias, master_user, et master_password avec vos propres informations. Remplacez également username avec 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"

    Cette commande produit une sortie similaire à 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 ROLE_NULLID_PACKAGESROLE_TABLESPACES, et ROLE_PROCEDURES au groupe auquel vous avez ajouté l'utilisateur. Pour de plus amples informations, veuillez consulter Rôles par défaut RDS d'Amazon pour DB2.

    Note

    Nous créons RDS pour les instances de base de données DB2 en RESTRICTIVE mode. Par conséquent, RDS pour les rôles DB2 ROLE_NULLID_PACKAGESROLE_TABLESPACES, et ROLE_PROCEDURES accordez des privilèges d'exécution sur les NULLID packages pour IBM Db2 CLP and 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_name, master_user, et master_password avec 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 avec 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 avec 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 avec le nom du groupe auquel vous souhaitez ajouter le rôle.

      db2 "grant role ROLE_PROCEDURES to group group_name"
  6. Accordez connect bindaddcreatetab,, et des IMPLICIT_SCHEMA autorisations au groupe auquel vous avez ajouté l'utilisateur. Dans l'exemple suivant, remplacez group_name avec 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 se 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_alias, username, et password avec 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"

Modifier le mot de passe d'un utilisateur

Pour modifier le mot de passe d'un utilisateur
  1. Connectez-vous à la rdsadmin base de données à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez master_username and master_password avec vos propres informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Changez le mot de passe en appelantrdsadmin.change_password. Pour de plus amples informations, veuillez consulter rdsadmin.change_password.

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

Ajouter des groupes à un utilisateur

Pour ajouter des groupes à un utilisateur
  1. Connectez-vous à la rdsadmin base de données à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez master_username and master_password avec vos propres informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Ajoutez des groupes à un utilisateur en appelantrdsadmin.add_groups. Pour de plus amples informations, veuillez consulter rdsadmin.add_groups.

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

Supprimer des groupes d'un utilisateur

Pour supprimer des groupes d'un utilisateur
  1. Connectez-vous à la rdsadmin base de données à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez master_username and master_password avec vos propres informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Supprimez des groupes en appelantrdsadmin.remove_groups. Pour de plus amples informations, veuillez consulter rdsadmin.remove_groups.

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

Supprimer un utilisateur

Pour supprimer un utilisateur de la liste d'autorisations
  1. Connectez-vous à la rdsadmin base de données à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez master_username and master_password avec vos propres informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Supprimez un utilisateur de votre liste d'autorisation en appelantrdsadmin.remove_user. Pour de plus amples informations, veuillez consulter rdsadmin.remove_user.

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

Lister les utilisateurs

Pour répertorier les utilisateurs sur une liste d'autorisation, appelez la procédure rdsadmin.list_users stockée. Pour de plus amples informations, veuillez consulter rdsadmin.list_users.

db2 "call rdsadmin.list_users()"

Création d'un rôle

Vous pouvez utiliser la procédure rdsadmin.create_role stockée pour créer un rôle.

Pour créer un rôle
  1. Connectez-vous à la rdsadmin base de données. Dans l'exemple suivant, remplacez master_username and master_password avec vos informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Réglez Db2 pour qu'il affiche le contenu.

    db2 set serveroutput on
  3. Créez un rôle Pour de plus amples informations, veuillez consulter rdsadmin.create_role.

    db2 "call rdsadmin.create_role( 'database_name', 'role_name')"
  4. Configurez Db2 pour qu'il ne produise pas de contenu.

    db2 set serveroutput off

Octroi d'un rôle

Vous pouvez utiliser la procédure rdsadmin.grant_role stockée pour attribuer un rôle à un rôle, à un utilisateur ou à un groupe.

Pour attribuer un rôle
  1. Connectez-vous à la rdsadmin base de données. Dans l'exemple suivant, remplacez master_username and master_password avec vos informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Réglez Db2 pour qu'il affiche le contenu.

    db2 set serveroutput on
  3. Attribuez un rôle. Pour de plus amples informations, veuillez consulter rdsadmin.grant_role.

    db2 "call rdsadmin.grant_role( 'database_name', 'role_name', 'grantee', 'admin_option')"
  4. Configurez Db2 pour qu'il ne produise pas de contenu.

    db2 set serveroutput off

Révocation d'un rôle

Vous pouvez utiliser la procédure rdsadmin.revoke_role stockée pour révoquer le rôle d'un rôle, d'un utilisateur ou d'un groupe.

Pour révoquer un rôle
  1. Connectez-vous à la rdsadmin base de données. Dans l'exemple suivant, remplacez master_username and master_password avec vos informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Révoquer un rôle. Pour de plus amples informations, veuillez consulter rdsadmin.revoke_role.

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

Octroi des autorisations de base

L'utilisateur principal, qui dispose DBADM d'une autorisation DBADMACCESSCTRL, peut accorder ou DATAACCESS autoriser un rôle, un utilisateur ou un groupe.

Pour accorder l'autorisation de base de données
  1. Connectez-vous à la rdsadmin base de données à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez master_username and master_password avec vos propres informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Accordez l'accès à un utilisateur en appelantrdsadmin.dbadm_grant. Pour de plus amples informations, veuillez consulter rdsadmin.dbadm_grant.

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

Exemple de cas d'utilisation

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

  1. Connectez-vous à la rdsadmin base de données à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez master_username and master_password avec 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éeTESTDB. Pour de plus amples informations, veuillez consulter rdsadmin.create_role.

    db2 "call rdsadmin.create_role( 'TESTDB', 'PROD_ROLE')"
  3. Attribuez le rôle à un utilisateur appeléPROD_USER. L'administrateur PROD_USER est autorisé à attribuer des rôles. Pour de plus amples informations, veuillez consulter 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 accorde DBADM l'autorisation à un rôle nommé PROD_ROLE d'après une base de données appeléeFUNDPROD. Pour de plus amples informations, veuillez consulter rdsadmin.dbadm_grant.

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

    db2 terminate
  6. Connectez-vous à la TESTDB base de données à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez master_username and master_password avec 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 TESTDB base de données, 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 DBADM d'une autorisation, peut révoquer DBADM l'DATAACCESSautorisation d'un rôle, d'un utilisateur ou d'un groupe. ACCESSCTRL

Pour révoquer l'autorisation de base de données
  1. Connectez-vous à la rdsadmin base de données à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez master_username and master_password avec vos propres informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Révoquez l'accès de l'utilisateur en appelantrdsadmin.dbadm_revoke. Pour de plus amples informations, veuillez consulter rdsadmin.dbadm_revoke.

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