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.
Rubriques
- Accorder à un utilisateur l'accès à votre base de données
- Modifier le mot de passe d'un utilisateur
- Ajouter des groupes à un utilisateur
- Supprimer des groupes d'un utilisateur
- Supprimer un utilisateur
- Lister les utilisateurs
- Création d'un rôle
- Octroi d'un rôle
- Révocation d'un rôle
- Octroi des autorisations de base
- Révocation de l'autorisation de base de données
Accorder à un utilisateur l'accès à votre base de données
Pour autoriser un utilisateur à accéder à votre base de données
-
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, remplacezmaster_username
andmaster_password
avec vos propres informations.db2 connect to rdsadmin user
master_username
usingmaster_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
-
Ajoutez un utilisateur à votre liste d'autorisation en appelant
rdsadmin.add_user
. Pour de plus amples informations, veuillez consulter 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 de plus amples informations, veuillez consulter 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_alias
,master_user
, etmaster_password
avec vos propres informations. Remplacez égalementusername
avec le nom d'utilisateur de l'utilisateur.db2 terminate db2 connect to
rds_database_alias
usermaster_user
usingmaster_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
-
Accordez les rôles RDS for DB2
ROLE_NULLID_PACKAGES
ROLE_TABLESPACES
, etROLE_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 DB2ROLE_NULLID_PACKAGES
ROLE_TABLESPACES
, etROLE_PROCEDURES
accordez des privilèges d'exécution sur lesNULLID
packages pour IBM Db2 CLP and 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_name
,master_user
, etmaster_password
avec vos propres informations.db2 connect to
database_name
usermaster_user
usingmaster_password
-
Accordez le rôle
ROLE_NULLED_PACKAGES
à un groupe. Dans l'exemple suivant, remplacezgroup_name
avec le nom du groupe auquel vous souhaitez ajouter le rôle.db2 "grant role ROLE_NULLID_PACKAGES to group
group_name
" -
Accordez le rôle
ROLE_TABLESPACES
au même groupe. Dans l'exemple suivant, remplacezgroup_name
avec le nom du groupe auquel vous souhaitez ajouter le rôle.db2 "grant role ROLE_TABLESPACES to group
group_name
" -
Accordez le rôle
ROLE_PROCEDURES
au même groupe. Dans l'exemple suivant, remplacezgroup_name
avec le nom du groupe auquel vous souhaitez ajouter le rôle.db2 "grant role ROLE_PROCEDURES to group
group_name
"
-
-
Accordez
connect
bindadd
createtab
,, et desIMPLICIT_SCHEMA
autorisations au groupe auquel vous avez ajouté l'utilisateur. Dans l'exemple suivant, remplacezgroup_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
" -
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 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
, etpassword
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
userusername
usingpassword
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
-
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, remplacezmaster_username
andmaster_password
avec vos propres informations.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Changez le mot de passe en appelant
rdsadmin.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
-
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, remplacezmaster_username
andmaster_password
avec vos propres informations.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Ajoutez des groupes à un utilisateur en appelant
rdsadmin.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
-
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, remplacezmaster_username
andmaster_password
avec vos propres informations.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Supprimez des groupes en appelant
rdsadmin.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
-
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, remplacezmaster_username
andmaster_password
avec vos propres informations.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Supprimez un utilisateur de votre liste d'autorisation en appelant
rdsadmin.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
-
Connectez-vous à la
rdsadmin
base de données. Dans l'exemple suivant, remplacezmaster_username
andmaster_password
avec vos informations.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Réglez Db2 pour qu'il affiche le contenu.
db2 set serveroutput on
-
Créez un rôle Pour de plus amples informations, veuillez consulter rdsadmin.create_role.
db2 "call rdsadmin.create_role( '
database_name
', 'role_name
')" -
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
-
Connectez-vous à la
rdsadmin
base de données. Dans l'exemple suivant, remplacezmaster_username
andmaster_password
avec vos informations.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Réglez Db2 pour qu'il affiche le contenu.
db2 set serveroutput on
-
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
')" -
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
-
Connectez-vous à la
rdsadmin
base de données. Dans l'exemple suivant, remplacezmaster_username
andmaster_password
avec vos informations.db2 connect to rdsadmin user
master_username
usingmaster_password
-
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 DBADM
ACCESSCTRL
, peut accorder ou DATAACCESS
autoriser un rôle, un utilisateur ou un groupe.
Pour accorder l'autorisation de base de données
-
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, remplacezmaster_username
andmaster_password
avec vos propres informations.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Accordez l'accès à un utilisateur en appelant
rdsadmin.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.
-
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, remplacezmaster_username
andmaster_password
avec vos propres informations.db2 connect to rdsadmin user
master_username
usingmaster_password
-
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')"
-
Attribuez le rôle à un utilisateur appelé
PROD_USER
. L'administrateurPROD_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')"
-
(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')"
-
Mettez fin à votre session.
db2 terminate
-
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, remplacezmaster_username
andmaster_password
avec vos propres informations.db2 connect to TESTDB user
master_username
usingmaster_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 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'DATAACCESS
autorisation d'un rôle, d'un utilisateur ou d'un groupe. ACCESSCTRL
Pour révoquer l'autorisation de base de données
-
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, remplacezmaster_username
andmaster_password
avec vos propres informations.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Révoquez l'accès de l'utilisateur en appelant
rdsadmin.dbadm_revoke
. Pour de plus amples informations, veuillez consulter rdsadmin.dbadm_revoke.db2 "call rdsadmin.dbadm_revoke( ?, '
database_name
, 'authorization
', 'grantee
')"