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.
Exemples
L'exemple suivant accorde le SELECT privilège sur la SALES table à l'utilisateurfred
.
grant select on table sales to fred;
L'exemple suivant accorde le SELECT privilège sur toutes les tables du TICKIT schéma QA_ à l'utilisateurfred
.
grant select on all tables in schema qa_tickit to fred;
L'exemple suivant accorde tous les privilèges du schéma QA_ TICKIT au groupe d'utilisateurs USERS QA_. Les privilèges du schéma sont CREATE etUSAGE. USAGEaccorde aux utilisateurs l'accès aux objets du schéma, mais n'accorde pas de privilèges tels que INSERT ou SELECT sur ces objets. Accordez des privilèges sur chaque objet séparément.
create group qa_users; grant all on schema qa_tickit to group qa_users;
L'exemple suivant accorde tous les privilèges de la SALES table du TICKIT schéma QA_ à tous les utilisateurs du groupe USERS QA_.
grant all on table qa_tickit.sales to group qa_users;
L'exemple suivant accorde tous les privilèges de la SALES table du TICKIT schéma QA_ à tous les utilisateurs des groupes QA_ USERS et RO_. USERS
grant all on table qa_tickit.sales to group qa_users, group ro_users;
L'exemple suivant accorde le DROP privilège sur la SALES table du TICKIT schéma QA_ à tous les utilisateurs du groupe USERS QA_.
grant drop on table qa_tickit.sales to group qa_users;>
La séquence de commandes suivante montre comment l’accès à un schéma n’accorde pas de privilèges sur une table du schéma.
create user schema_user in group qa_users password 'Abcd1234'; create schema qa_tickit; create table qa_tickit.test (col1 int); grant all on schema qa_tickit to schema_user; set session authorization schema_user; select current_user;
current_user -------------- schema_user (1 row)
select count(*) from qa_tickit.test;
ERROR: permission denied for relation test [SQL State=42501]
set session authorization dw_user; grant select on table qa_tickit.test to schema_user; set session authorization schema_user; select count(*) from qa_tickit.test;
count ------- 0 (1 row)
La séquence de commandes suivante montre comment l’accès à une vue n’implique pas l’accès à ses tables sous-jacentes. L'utilisateur appelé VIEW _ ne USER peut pas effectuer de sélection dans le DATE tableau, bien qu'il ait obtenu tous les privilèges sur VIEW _DATE.
create user view_user password 'Abcd1234'; create view view_date as select * from date; grant all on view_date to view_user; set session authorization view_user; select current_user;
current_user -------------- view_user (1 row)
select count(*) from view_date;
count ------- 365 (1 row)
select count(*) from date;
ERROR: permission denied for relation date
L'exemple suivant accorde des SELECT privilèges sur les cust_phone
colonnes cust_name
et de la cust_profile
table à l'utilisateuruser1
.
grant select(cust_name, cust_phone) on cust_profile to user1;
L'exemple suivant accorde SELECT au sales_group
groupe des UPDATE privilèges sur les cust_phone
colonnes cust_name
et et sur la cust_contact_preference
colonne du cust_profile
tableau.
grant select(cust_name, cust_phone), update(cust_contact_preference) on cust_profile to group sales_group;
L'exemple suivant montre comment utiliser le ALL mot clé pour accorder au sales_admin
groupe à la fois des UPDATE privilèges SELECT et des privilèges sur trois colonnes du tableaucust_profile
.
grant ALL(cust_name, cust_phone,cust_contact_preference) on cust_profile to group sales_admin;
L'exemple suivant accorde le SELECT privilège sur la cust_name
colonne de la cust_profile_vw
vue à l'user2
utilisateur.
grant select(cust_name) on cust_profile_vw to user2;
Exemples d’octroi d’accès à des unités de partage des données
Les exemples suivants montrent les autorisations d'utilisation du GRANT partage de données sur une base de données ou un schéma spécifique créé à partir d'un partage de données.
Dans l'exemple suivant, un administrateur côté producteur accorde l'USAGEautorisation sur le partage de salesshare
données à l'espace de noms spécifié.
GRANT USAGE ON DATASHARE salesshare TO NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';
Dans l'exemple suivant, un administrateur côté consommateur accorde l'USAGEautorisation au sales_db
to. Bob
GRANT USAGE ON DATABASE sales_db TO Bob;
Dans l'exemple suivant, un administrateur côté consommateur accorde l'GRANTUSAGEautorisation au rôle sur le sales_schema
schéma. Analyst_role
sales_schema
est un schéma externe qui pointe vers sales_db.
GRANT USAGE ON SCHEMA sales_schema TO ROLE Analyst_role;
À ce stade, Bob
et Analyst_role
peuvent accéder à tous les objets de base de données dans sales_schema
etsales_db
.
L’exemple suivant montre comment accorder une autorisation de niveau objet supplémentaire pour les objets d’une base de données partagée. Ces autorisations supplémentaires ne sont nécessaires que si la CREATE DATABASE commande utilisée pour créer la base de données partagée a utilisé la WITH PERMISSIONS clause. Si la CREATE DATABASE commande n'a pas été utilisée WITHPERMISSIONS, l'autorisation accordée à la USAGE base de données partagée accorde un accès complet à tous les objets de cette base de données.
GRANT SELECT ON sales_db.sales_schema.tickit_sales_redshift to Bob;
Exemples d’octroi d’autorisations étendues
L’exemple suivant autorise le rôle Sales
à utiliser tous les schémas actuels et futurs de la base de données Sales_db
.
GRANT USAGE FOR SCHEMAS IN DATABASE Sales_db TO ROLE Sales;
L'exemple suivant accorde à l'utilisateur l'SELECTautorisation pour toutes les tables actuelles et futures Sales_db
de la base de donnéesalice
, ainsi que alice
l'autorisation d'accorder des autorisations étendues sur les tables Sales_db
à d'autres utilisateurs.
GRANT SELECT FOR TABLES IN DATABASE Sales_db TO alice WITH GRANT OPTION;
L'exemple suivant accorde à l'utilisateur l'EXECUTEautorisation d'utiliser les fonctions du Sales_schema
schémabob
.
GRANT EXECUTE FOR FUNCTIONS IN SCHEMA Sales_schema TO bob;
L’exemple suivant accorde au Sales
rôle toutes les autorisations pour toutes les tables du schéma ShareSchema
de la base de données ShareDb
. Lorsque vous spécifiez le schéma, vous pouvez spécifier la base de données du schéma en utilisant le format en deux parties database.schema
.
GRANT ALL FOR TABLES IN SCHEMA ShareDb.ShareSchema TO ROLE Sales;
L’exemple suivant est le même que le précédent. Vous pouvez spécifier la base de données à l’aide du mot-clé DATABASE
au lieu d’utiliser un format en deux parties.
GRANT ALL FOR TABLES IN SCHEMA ShareSchema DATABASE ShareDb TO ROLE Sales;
Exemples d'octroi du ASSUMEROLE privilège
Voici des exemples d'octroi de ce ASSUMEROLE privilège.
L'exemple suivant montre l'REVOKEinstruction selon laquelle un superutilisateur s'exécute une fois sur le cluster pour permettre aux utilisateurs et aux groupes d'utiliser le ASSUMEROLE privilège. Le superutilisateur accorde ensuite le ASSUMEROLE privilège aux utilisateurs et aux groupes pour les commandes appropriées. Pour plus d'informations sur l'activation de l'utilisation du ASSUMEROLE privilège pour les utilisateurs et les groupes, consultezNotes d'utilisation pour l'octroi de l'ASSUMEROLEautorisation.
revoke assumerole on all from public for all;
L'exemple suivant accorde le ASSUMEROLE privilège à l'utilisateur reg_user1
pour que le IAM rôle puisse Redshift-S3-Read
effectuer COPY des opérations.
grant assumerole on 'arn:aws:iam::123456789012:role/Redshift-S3-Read' to reg_user1 for copy;
L'exemple suivant accorde le ASSUMEROLE privilège à l'utilisateur reg_user1
pour la chaîne de IAM rôlesRoleA
, RoleB
afin d'effectuer UNLOAD des opérations.
grant assumerole on 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB' to reg_user1 for unload;
Voici un exemple de UNLOAD commande utilisant la chaîne de IAM rôlesRoleA
,RoleB
.
unload ('select * from venue limit 10') to 's3://companyb/redshift/venue_pipe_' iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
L'exemple suivant accorde le ASSUMEROLE privilège à l'utilisateur reg_user1
pour le IAM rôle Redshift-Exfunc
de créer des fonctions externes.
grant assumerole on 'arn:aws:iam::123456789012:role/Redshift-Exfunc' to reg_user1 for external function;
L'exemple suivant accorde le ASSUMEROLE privilège à l'utilisateur reg_user1
pour le IAM rôle de Redshift-model
créer des modèles d'apprentissage automatique.
grant assumerole on 'arn:aws:iam::123456789012:role/Redshift-ML' to reg_user1 for create model;
Exemples d'octroi de ROLE privilèges
L’exemple suivant accorde le rôle sample_role1 à l’utilisateur user1.
CREATE ROLE sample_role1; GRANT ROLE sample_role1 TO user1;
L'exemple suivant accorde sample_role1 à user1 avec le WITH ADMINOPTION, définit la session en cours pour user1, et user1 accorde sample_role1 à user2.
GRANT ROLE sample_role1 TO user1 WITH ADMIN OPTION; SET SESSION AUTHORIZATION user1; GRANT ROLE sample_role1 TO user2;
L’exemple suivant accorde le rôle sample_role1 au rôle sample_role2.
GRANT ROLE sample_role1 TO ROLE sample_role2;
L’exemple suivant accorde le rôle sample_role2 au rôle sample_role3 et au rôle sample_role4. Ensuite, il tente d’accorder le rôle sample_role3 au rôle sample_role1.
GRANT ROLE sample_role2 TO ROLE sample_role3; GRANT ROLE sample_role3 TO ROLE sample_role2; ERROR: cannot grant this role, a circular dependency was detected between these roles
L'exemple suivant accorde les privilèges CREATE USER système à sample_role1.
GRANT CREATE USER TO ROLE sample_role1;
L’exemple suivant accorde le rôle défini par le système sys:dba
à l’utilisateur user1.
GRANT ROLE sys:dba TO user1;
L’exemple suivant tente d’accorder le rôle sample_role3 dans une dépendance circulaire au rôle sample_role2.
CREATE ROLE sample_role3; GRANT ROLE sample_role2 TO ROLE sample_role3; GRANT ROLE sample_role3 TO ROLE sample_role2; -- fail ERROR: cannot grant this role, a circular dependency was detected between these roles