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.
Rubriques
Octroi à un utilisateur l’accès à votre base de données
Pour accorder à un utilisateur l’accès à votre base de données
-
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, remplacezmaster_usernameetmaster_passwordpar vos propres informations.db2 connect to rdsadmin usermaster_usernameusingmaster_passwordLe 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 -
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')" -
(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')" -
Vérifiez les autorisations dont dispose l’utilisateur. Dans l'exemple suivant, remplacez
rds_database_aliasmaster_user, etmaster_passwordpar vos propres informations. Remplacez égalementusernamepar le nom d'utilisateur de l'utilisateur.db2 terminate db2 connect tords_database_aliasusermaster_userusingmaster_passworddb2 "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 -
Accordez les rôles RDS for Db2 pour
ROLE_NULLID_PACKAGES,ROLE_TABLESPACESetROLE_PROCEDURESau 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 Db2ROLE_NULLID_PACKAGES,ROLE_TABLESPACESetROLE_PROCEDURESaccorde des privilèges d’exécution sur les packagesNULLIDpour IBM Db2 CLP et Dynamic SQL. Ces rôles accordent également des privilèges aux utilisateurs sur les tablespaces.-
Connectez-vous à votre base de données Db2. Dans l'exemple suivant, remplacez
database_namemaster_user, etmaster_passwordpar vos propres informations.db2 connect todatabase_nameusermaster_userusingmaster_password -
Accordez le rôle
ROLE_NULLED_PACKAGESà un groupe. Dans l'exemple suivant, remplacezgroup_namepar le nom du groupe auquel vous souhaitez ajouter le rôle.db2 "grant role ROLE_NULLID_PACKAGES to groupgroup_name" -
Accordez le rôle
ROLE_TABLESPACESau même groupe. Dans l'exemple suivant, remplacezgroup_namepar le nom du groupe auquel vous souhaitez ajouter le rôle.db2 "grant role ROLE_TABLESPACES to groupgroup_name" -
Accordez le rôle
ROLE_PROCEDURESau même groupe. Dans l'exemple suivant, remplacezgroup_namepar le nom du groupe auquel vous souhaitez ajouter le rôle.db2 "grant role ROLE_PROCEDURES to groupgroup_name"
-
-
Accordez les autorités
connect,bindadd,createtabetIMPLICIT_SCHEMAau groupe auquel vous avez ajouté l’utilisateur. Dans l'exemple suivant, remplacezgroup_namepar 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 groupgroup_name" -
Répétez les étapes 4 à 6 pour chaque groupe supplémentaire auquel vous avez ajouté l’utilisateur.
-
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, etpasswordpar le nom de la base de données ainsi que le nom d'utilisateur et le mot de passe de l'utilisateur.db2 connect tords_database_aliasuserusernameusingpassworddb2 "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
-
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, remplacezmaster_usernameetmaster_passwordpar vos propres informations.db2 connect to rdsadmin usermaster_usernameusingmaster_password -
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
-
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, remplacezmaster_usernameetmaster_passwordpar vos propres informations.db2 connect to rdsadmin usermaster_usernameusingmaster_password -
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
-
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, remplacezmaster_usernameetmaster_passwordpar vos propres informations.db2 connect to rdsadmin usermaster_usernameusingmaster_password -
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
-
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, remplacezmaster_usernameetmaster_passwordpar vos propres informations.db2 connect to rdsadmin usermaster_usernameusingmaster_password -
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
-
Connectez-vous à la base de données
rdsadmin. Dans l'exemple suivant, remplacezmaster_usernameetmaster_passwordpar vos informations.db2 connect to rdsadmin usermaster_usernameusingmaster_password -
Configurez Db2 pour qu’il affiche le contenu.
db2 set serveroutput on -
Créez un rôle. Pour plus d’informations, consultez rdsadmin.create_role.
db2 "call rdsadmin.create_role( 'database_name', 'role_name')" -
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
-
Connectez-vous à la base de données
rdsadmin. Dans l'exemple suivant, remplacezmaster_usernameetmaster_passwordpar vos informations.db2 connect to rdsadmin usermaster_usernameusingmaster_password -
Configurez Db2 pour qu’il affiche le contenu.
db2 set serveroutput on -
Attribuez un rôle. Pour plus d’informations, consultez rdsadmin.grant_role.
db2 "call rdsadmin.grant_role( 'database_name', 'role_name', 'grantee', 'admin_option')" -
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
-
Connectez-vous à la base de données
rdsadmin. Dans l'exemple suivant, remplacezmaster_usernameetmaster_passwordpar vos informations.db2 connect to rdsadmin usermaster_usernameusingmaster_password -
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
-
Connectez-vous à la base de données
rdsadmin. Dans l'exemple suivant, remplacezmaster_usernameetmaster_passwordpar vos informations.db2 connect to rdsadmin usermaster_usernameusingmaster_password -
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
-
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, remplacezmaster_usernameetmaster_passwordpar vos propres informations.db2 connect to rdsadmin usermaster_usernameusingmaster_password -
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.
-
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, remplacezmaster_usernameetmaster_passwordpar vos propres informations.db2 connect to rdsadmin usermaster_usernameusingmaster_password -
Créez un rôle appelé
PROD_ROLEpour une base de données appeléeTESTDB. Pour plus d’informations, consultez rdsadmin.create_role.db2 "call rdsadmin.create_role( 'TESTDB', 'PROD_ROLE')" -
Attribuez le rôle à un utilisateur appelé
PROD_USER. LePROD_USERreç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')" -
(Facultatif) Fournissez des autorisations ou des privilèges supplémentaires. L’exemple suivant octroie l’autorisation
DBADMà un rôle nomméPROD_ROLEpour 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')" -
Mettez fin à votre séance.
db2 terminate -
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, remplacezmaster_usernameetmaster_passwordpar vos propres informations.db2 connect to TESTDB usermaster_usernameusingmaster_password -
Ajoutez d’autres autorisations au rôle.
db2 "grant connect, implicit_schema on database to role PROD_ROLE" -
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
-
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, remplacezmaster_usernameetmaster_passwordpar vos propres informations.db2 connect to rdsadmin usermaster_usernameusingmaster_password -
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')"