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.
Contrôle de l'accès des utilisateurs à la base de données Postgre SQL
Les nouvelles bases de données dans Postgre SQL sont toujours créées avec un ensemble de privilèges par défaut dans le public
schéma de la base de données qui permettent à tous les utilisateurs et rôles de base de données de créer des objets. Ces privilèges permettent aux utilisateurs de base de données de se connecter à la base de données, par exemple, et de créer des tables temporaires lorsqu'ils sont connectés.
Pour mieux contrôler l'accès des utilisateurs aux instances de bases de données que vous créez sur votre SQL instance RDS de base de données Postgre, nous vous recommandons de révoquer ces privilèges par défaut. public
Vous accordez ensuite des privilèges spécifiques aux utilisateurs de base de données de manière plus détaillée, comme indiqué dans la procédure suivante.
Pour configurer des rôles et des privilèges pour une nouvelle instance de base de données
Supposons que vous configurez une base de données sur un récemment créé RDSpour une SQL instance de base de données Postgre destinée à être utilisée par plusieurs chercheurs, qui ont tous besoin d'un accès en lecture-écriture à la base de données.
Utilisez
psql
(oupgAdmin) pour vous connecter à votre instance de base de SQL données Postgre RDS pour :psql --host=
your-db-instance.666666666666
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres --passwordLorsque vous y êtes invité, saisissez votre mot de passe. Le client
psql
se connecte à la base de données de connexions administratives par défaut,postgres=>
, et l'affiche sous forme d'invite.Pour empêcher les utilisateurs de base de données de créer des objets dans le schéma
public
, procédez comme suit :postgres=>
REVOKE CREATE ON SCHEMA public FROM PUBLIC;
REVOKE
Vous créez ensuite une instance de base de données :
postgres=>
CREATE DATABASE
lab_db
;CREATE DATABASE
Révoquez tous les privilèges du schéma
PUBLIC
sur cette nouvelle base de données.postgres=>
REVOKE ALL ON DATABASE
lab_db
FROM public;REVOKE
Créez un rôle pour les utilisateurs de base de données.
postgres=>
CREATE ROLE
lab_tech
;CREATE ROLE
Donnez aux utilisateurs de base de données disposant de ce rôle la possibilité de se connecter à la base de données.
postgres=>
GRANT CONNECT ON DATABASE
lab_db
TOlab_tech
;GRANT
Accordez à tous les utilisateurs dotés du rôle
lab_tech
tous les privilèges sur cette base de données.postgres=>
GRANT ALL PRIVILEGES ON DATABASE
lab_db
TOlab_tech
;GRANT
Créez des utilisateurs de base de données, comme suit :
postgres=>
CREATE ROLE lab_user1 LOGIN PASSWORD 'change_me';
CREATE ROLE
postgres=>
CREATE ROLE lab_user2 LOGIN PASSWORD 'change_me';
CREATE ROLE
-
Accordez à ces deux utilisateurs les privilèges associés au rôle lab_tech :
postgres=>
GRANT lab_tech TO lab_user1;
GRANT ROLE
postgres=>
GRANT lab_tech TO lab_user2;
GRANT ROLE
À ce stade, lab_user1
et lab_user2
peuvent se connecter à la base de données lab_db
. Cet exemple ne respecte pas les bonnes pratiques pour une utilisation en entreprise, qui peuvent inclure la création de plusieurs instances de base de données, différents schémas et l'octroi d'autorisations limitées. Pour des informations plus complètes et des scénarios supplémentaires, consultez Gestion des SQL utilisateurs et des rôles de Postgre
Pour plus d'informations sur les privilèges dans les SQL bases de données Postgre, consultez la GRANT