ALTER DEFAULT PRIVILEGES - Amazon Redshift

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.

ALTER DEFAULT PRIVILEGES

Définit l'ensemble d'autorisations d'accès par défaut à appliquer aux objets créés à l'avenir par l'utilisateur spécifié. Par défaut, les utilisateurs peuvent ne modifier que leurs propres autorisations d’accès par défaut. Seul un superutilisateur peut définir des autorisations par défaut pour les autres utilisateurs.

Vous pouvez appliquer les privilèges par défaut à des rôles, des utilisateurs ou des groupes d’utilisateurs. Vous pouvez définir des autorisations par défaut globalement pour tous les objets créés dans la base de données actuelle, ou pour les objets créés uniquement dans les schémas spécifiés.

Les autorisations par défaut s'appliquent uniquement aux nouveaux objets. L'exécution de ALTER DEFAULT PRIVILEGES ne modifie pas les autorisations sur les objets existants. Pour accorder des autorisations sur tous les objets actuels et futurs créés par n'importe quel utilisateur au sein d'une base de données ou d'un schéma, voir Autorisations étendues.

Pour afficher les informations sur les privilèges par défaut des utilisateurs de base de données, interrogez la table catalogue système PG_DEFAULT_ACL.

Pour plus d’informations sur les privilèges, consultez GRANT.

Privilèges requis

Les privilèges suivants sont requis pour ALTER DEFAULT PRIVILEGES :

  • Superuser

  • Utilisateurs disposant du privilège ALTER DEFAULT PRIVILEGES

  • Utilisateurs modifiant leurs propres privilèges d’accès par défaut

  • Utilisateurs définissant des privilèges pour les schémas pour lesquels ils disposent de privilèges d’accès

Syntaxe

ALTER DEFAULT PRIVILEGES [ FOR USER target_user [, ...] ] [ IN SCHEMA schema_name [, ...] ] grant_or_revoke_clause where grant_or_revoke_clause is one of: GRANT { { SELECT | INSERT | UPDATE | DELETE | DROP | REFERENCES | TRUNCATE } [,...] | ALL [ PRIVILEGES ] } ON TABLES TO { user_name [ WITH GRANT OPTION ] | ROLE role_name | GROUP group_name | PUBLIC } [, ...] GRANT { EXECUTE | ALL [ PRIVILEGES ] } ON FUNCTIONS TO { user_name [ WITH GRANT OPTION ] | ROLE role_name | GROUP group_name | PUBLIC } [, ...] GRANT { EXECUTE | ALL [ PRIVILEGES ] } ON PROCEDURES TO { user_name [ WITH GRANT OPTION ] | ROLE role_name | GROUP group_name | PUBLIC } [, ...] REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | DELETE | REFERENCES | TRUNCATE } [,...] | ALL [ PRIVILEGES ] } ON TABLES FROM user_name [, ...] [ RESTRICT ] REVOKE { { SELECT | INSERT | UPDATE | DELETE | REFERENCES | TRUNCATE } [,...] | ALL [ PRIVILEGES ] } ON TABLES FROM { ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] { EXECUTE | ALL [ PRIVILEGES ] } ON FUNCTIONS FROM user_name [, ...] [ RESTRICT ] REVOKE { EXECUTE | ALL [ PRIVILEGES ] } ON FUNCTIONS FROM { ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] { EXECUTE | ALL [ PRIVILEGES ] } ON PROCEDURES FROM user_name [, ...] [ RESTRICT ] REVOKE { EXECUTE | ALL [ PRIVILEGES ] } ON PROCEDURES FROM { ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ]

Paramètres

FOR USER utilisateur_cible

Facultatif. Nom de l’utilisateur pour lequel les privilèges par défaut sont définis. Seul un super-utilisateur peut spécifier les privilèges par défaut d’autres utilisateurs. La valeur par défaut est l’utilisateur actif.

IN SCHEMA nom_schéma

Facultatif. Si une clause IN SCHEMA s’affiche, les privilèges par défaut spécifiés s’appliquent aux nouveaux objets créés dans le nom_schéma spécifié. Dans ce cas, l’utilisateur ou groupe d’utilisateurs qui est la cible d’ALTER DEFAULT PRIVILEGES doit avoir le privilège CREATE pour le schéma spécifié. Les privilèges par défaut qui sont spécifiques à un schéma sont ajoutés aux privilèges par défaut globaux existants. Par défaut, les privilèges par défaut sont appliqués globalement à l’ensemble de la base de données.

GRANT

Ensemble de privilèges à accorder aux utilisateurs ou aux groupes spécifiés pour toutes les nouvelles tables et vues, fonctions ou procédures stockées créées par l'utilisateur spécifié. Vous pouvez définir les mêmes privilèges et options avec la clause GRANT qu’avec la commande GRANT.

WITH GRANT OPTION

Clause indiquant que l’utilisateur qui reçoit les privilèges peut à son tour accorder les mêmes privilèges à d’autres personnes. Vous ne pouvez pas accorder WITH GRANT OPTION à un groupe ou à PUBLIC.

TO user_name | ROLE role_name | GROUP group_name

Nom de l’utilisateur, du rôle ou du groupe d’utilisateurs auquel les privilèges par défaut spécifiés s’appliquent.

REVOKE

Ensemble des privilèges à retirer aux utilisateurs ou groupes spécifiés pour toutes les nouvelles tables, fonctions ou procédures stockées créées par l’utilisateur spécifié. Vous pouvez définir les mêmes privilèges et options avec la clause REVOKE qu’avec la commande REVOKE.

GRANT OPTION FOR

Clause qui retire uniquement la possibilité d’accorder un privilège spécifié à d’autres utilisateurs et qui ne retire pas le privilège lui-même. Vous ne pouvez pas retirer GRANT OPTION d’un groupe ou de PUBLIC.

FROM user_name | ROLE role_name | GROUP group_name

Le nom de l’utilisateur, du rôle ou du groupe d’utilisateurs à partir duquel les privilèges spécifiés sont révoqués par défaut.

RESTRICT

L’option RESTRICT révoque uniquement les privilèges que l’utilisateur a directement accordés. Il s’agit de l’option par défaut.

Exemples

Supposons que vous souhaitiez autoriser n'importe quel utilisateur du groupe d'utilisateurs report_readers à consulter toutes les tables et vues créées par l'utilisateurreport_admin. Dans ce cas, exécutez la commande suivante en tant que super-utilisateur.

alter default privileges for user report_admin grant select on tables to group report_readers;

Dans l'exemple suivant, la première commande accorde des privilèges SELECT sur toutes les nouvelles tables et vues que vous créez.

alter default privileges grant select on tables to public;

L’exemple suivant accorde le privilège INSERT au groupe d’utilisateurs sales_admin pour toutes les nouvelles tables et vues que vous créez dans le schéma sales.

alter default privileges in schema sales grant insert on tables to group sales_admin;

L’exemple suivant inverse la commande ALTER DEFAULT PRIVILEGES de l’exemple précédent.

alter default privileges in schema sales revoke insert on tables from group sales_admin;

Par défaut, le groupe d’utilisateurs PUBLIC a l’autorisation d’exécution pour toutes les nouvelles fonctions définies par l’utilisateur. Pour retirer les autorisations d’exécution public de vos nouvelles fonctions, puis n’accorder l’autorisation d’exécution qu’au groupe d’utilisateurs dev_test, exécutez les commandes suivantes.

alter default privileges revoke execute on functions from public; alter default privileges grant execute on functions to group dev_test;