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.
Notes d’utilisation
Pour attribuer des privilèges sur un objet, vous devez répondre à l’un des critères suivants :
-
Être le propriétaire de l’objet.
-
Être un super-utilisateur.
-
Avoir un privilège accordé pour cet objet et ce privilège.
Par exemple, la commande suivante permet à l'utilisateur HR à la fois d'exécuter des SELECT commandes sur la table des employés et d'accorder et de révoquer le même privilège à d'autres utilisateurs.
grant select on table employees to HR with grant option;
Les RH ne peuvent accorder de privilèges pour aucune opération autre que SELECT les employés ou sur une table autre que les employés.
Autre exemple, la commande suivante permet à l'utilisateur HR à la fois d'exécuter des ALTER commandes sur la table des employés et d'accorder et de révoquer le même privilège à d'autres utilisateurs.
grant ALTER on table employees to HR with grant option;
Les RH ne peuvent accorder de privilèges pour aucune opération autre que ALTER les employés ou sur une table autre que les employés.
Le fait d’avoir les privilèges octroyés sur une vue n’implique pas d’avoir les privilèges sur les tables sous-jacentes. De même, le fait d’avoir les privilèges octroyés sur un schéma n’implique pas d’avoir les privilèges sur les tables du schéma. Accordez explicitement l’accès aux tables sous-jacentes.
Pour accorder des privilèges à une AWS Lake Formation table, le IAM rôle associé au schéma externe de la table doit être autorisé à accorder des privilèges à la table externe. L'exemple suivant crée un schéma externe avec un IAM rôle associémyGrantor
. Le IAM rôle myGrantor
est autorisé à accorder des autorisations à d'autres personnes. La GRANT commande utilise l'autorisation du IAM rôle myGrantor
associé au schéma externe pour accorder l'autorisation au IAM rôlemyGrantee
.
create external schema mySchema from data catalog database 'spectrum_db' iam_role 'arn:aws:iam::123456789012:role/myGrantor' create external database if not exists;
grant select on external table mySchema.mytable to iam_role 'arn:aws:iam::123456789012:role/myGrantee';
Si vous avez GRANT ALL des privilèges sur un IAM rôle, des privilèges individuels sont accordés dans le catalogue de données associé compatible avec Lake Formation. Par exemple, les GRANT ALL privilèges individuels accordés (SELECT,, ALTER DROPDELETE, etINSERT) apparaissent dans la console Lake Formation.
grant all on external table mySchema.mytable to iam_role 'arn:aws:iam::123456789012:role/myGrantee';
Les superutilisateurs peuvent accéder à tous les objets indépendamment GRANT des REVOKE commandes qui définissent les privilèges des objets.
Notes d’utilisation pour le contrôle d’accès de niveau colonne
Les notes d’utilisation suivantes s’appliquent aux privilèges de niveau colonne sur les tables et les vues Amazon Redshift. Ces notes décrivent des tableaux ; les mêmes notes s’appliquent aux vues, sauf signalement explicite d’une exception.
Pour une table Amazon Redshift, vous ne pouvez accorder que les UPDATE privilèges SELECT et au niveau de la colonne. Pour une vue Amazon Redshift, vous ne pouvez accorder le SELECT privilège qu'au niveau de la colonne.
Le ALL mot clé est un synonyme SELECT et des UPDATE privilèges combinés lorsqu'il est utilisé dans le contexte d'une colonne d'une tableGRANT.
-
Si vous ne disposez pas du SELECT privilège sur toutes les colonnes d'un tableau, l'exécution d'une SELECT opération* renvoie uniquement les colonnes auxquelles vous avez accès. Lorsque vous utilisez une vue, une SELECT opération* tente d'accéder à toutes les colonnes de la vue. Si vous n'êtes pas autorisé à accéder à toutes les colonnes, ces requêtes échouent avec un message d'erreur de refus d'autorisation.
SELECT* ne s'étend pas uniquement aux colonnes accessibles dans les cas suivants :
Vous ne pouvez pas créer une vue normale avec uniquement des colonnes accessibles en utilisant SELECT *.
Vous ne pouvez pas créer une vue matérialisée avec uniquement des colonnes accessibles en utilisant SELECT *.
Si vous avez SELECT ou des UPDATE privilèges sur une table ou une vue et que vous ajoutez une colonne, vous avez toujours les mêmes privilèges sur la table ou la vue et donc sur toutes ses colonnes.
Seul le propriétaire d’une table ou un superutilisateur peut accorder des privilèges de niveau colonne.
La WITH GRANT OPTION clause n'est pas prise en charge pour les privilèges au niveau des colonnes.
Vous ne pouvez pas détenir le même privilège au niveau de la table et de la colonne. Par exemple, l'utilisateur ne
data_scientist
peut pas avoir à la fois des SELECT privilèges sur la tableemployee
et des SELECT privilèges sur la colonneemployee.department
. Tenez compte des résultats suivants lorsque vous accordez le même privilège à une table et à une colonne de la table :-
Si un utilisateur dispose d’un privilège de niveau table sur une table, l’octroi du même privilège au niveau de la colonne n’a aucun effet.
-
Si un utilisateur dispose d’un privilège de niveau table sur une table, la révocation du même privilège pour une ou plusieurs colonnes de la table renvoie une erreur. Au lieu de cela, révoquez le privilège au niveau de la table.
-
Si un utilisateur dispose d’un privilège au niveau de la colonne, l’octroi du même privilège au niveau de la table renvoie une erreur.
-
Si un utilisateur dispose d’un privilège au niveau de la colonne, la révocation du même privilège au niveau de la table révoque les privilèges de colonne et de table pour toutes les colonnes de la table.
-
Vous ne pouvez pas accorder de privilèges de niveau colonne sur les vues de liaison tardive.
Pour créer une vue matérialisée, vous devez disposer de SELECT privilèges au niveau des tables sur les tables de base. Même si vous disposez de privilèges au niveau de colonnes spécifiques, vous ne pouvez pas créer de vue matérialisée uniquement avec ces colonnes. Vous pouvez toutefois accorder des SELECT privilèges aux colonnes d'une vue matérialisée, comme dans le cas des vues ordinaires.
Pour rechercher les privilèges accordés au niveau des colonnes, utilisez la vue PG_ _ ATTRIBUTE. INFO
Notes d'utilisation pour l'octroi de l'ASSUMEROLEautorisation
Les notes d'utilisation suivantes s'appliquent à l'octroi de l'ASSUMEROLEautorisation dans Amazon Redshift.
Vous utilisez cette ASSUMEROLE autorisation pour contrôler les autorisations d'accès aux IAM rôles pour les utilisateurs, les rôles ou les groupes de base de données sur des commandes telles que COPY UNLOAD EXTERNALFUNCTION,, ou CREATEMODEL. Une fois que vous avez accordé l'ASSUMEROLEautorisation à un utilisateur, à un rôle ou à un groupe pour un IAM rôle, l'utilisateur, le rôle ou le groupe peut assumer ce rôle lors de l'exécution de la commande. L'ASSUMEROLEautorisation vous permet d'accorder l'accès aux commandes appropriées selon les besoins.
Seul un superutilisateur de base de données peut accorder ou révoquer l'ASSUMEROLEautorisation d'utilisateurs, de rôles et de groupes. Un superutilisateur conserve toujours l'ASSUMEROLEautorisation.
Pour permettre l'utilisation de l'ASSUMEROLEautorisation pour les utilisateurs, les rôles et les groupes, un superutilisateur effectue les deux actions suivantes :
Exécuter l’instruction suivante une fois sur le cluster :
revoke assumerole on all from public for all;
Accordez l'ASSUMEROLEautorisation aux utilisateurs, aux rôles et aux groupes pour les commandes appropriées.
Vous pouvez spécifier le chaînage des rôles dans la clause ON lorsque vous accordez l'ASSUMEROLEautorisation. Vous utilisez des virgules pour séparer les rôles dans une chaîne de rôles, par exemple Role1,Role2,Role3
. Si le chaînage des rôles a été spécifié lors de l'octroi de l'ASSUMEROLEautorisation, vous devez spécifier la chaîne de rôles lors de l'exécution des opérations accordées par l'ASSUMEROLEautorisation. Vous ne pouvez pas spécifier de rôles individuels au sein de la chaîne de rôles lorsque vous effectuez des opérations accordées par l'ASSUMEROLEautorisation. Par exemple, si un utilisateur, un rôle ou un groupe se voit attribuer la chaîne de rôles Role1,Role2,Role3
, vous ne pouvez pas spécifier uniquement Role1
pour effectuer des opérations.
Si un utilisateur tente d'effectuer une CREATE MODEL opération COPY UNLOAD EXTERNALFUNCTION,, ou ASSUMEROLE sans obtenir l'autorisation, un message similaire au suivant s'affiche.
ERROR: User awsuser does not have ASSUMEROLE permission on IAM role "arn:aws:iam::123456789012:role/RoleA" for COPY
Pour répertorier les utilisateurs auxquels l'accès aux IAM rôles et aux commandes a été accordé par le biais de cette ASSUMEROLE autorisation, consultezHAS_ASSUMEROLE_PRIVILEGE. Pour répertorier IAM les rôles et les autorisations de commande accordés à un utilisateur que vous spécifiez, consultezPG_ _ GET _ IAM _PAR_ ROLE USER. Pour répertorier les utilisateurs, les rôles et les groupes auxquels l'accès a été accordé à un IAM rôle que vous spécifiez, consultezPG_ _ GET GRANTEE IAM _PAR_ _ ROLE.
Notes d’utilisation pour l’octroi d’autorisations de machine learning
Vous ne pouvez pas accorder ou révoquer directement les autorisations liées à une fonction ML. Une fonction ML appartient à un modèle ML et les autorisations sont contrôlées par le biais du modèle. En revanche, vous pouvez accorder des autorisations liées au modèle ML. L’exemple suivant montre comment autoriser tous les utilisateurs à exécuter la fonction ML associée au modèle customer_churn
.
GRANT EXECUTE ON MODEL customer_churn TO PUBLIC;
Vous pouvez également accorder toutes les autorisations à un utilisateur pour le modèle MLcustomer_churn
.
GRANT ALL on MODEL customer_churn TO ml_user;
L’octroi de l’autorisation EXECUTE
liée à une fonction de ML échouera s’il existe une fonction de ML dans le schéma, même si cette fonction de ML dispose déjà de l’autorisation EXECUTE
par le biais de GRANT EXECUTE ON MODEL
. Nous vous recommandons d’utiliser un schéma distinct lorsque vous utilisez la commande CREATE MODEL
afin de conserver les fonctions ML dans un schéma distinct. L’exemple suivant vous montre comment procéder.
CREATE MODEL ml_schema.customer_churn FROM customer_data TARGET churn FUNCTION ml_schema.customer_churn_prediction IAM_ROLE default SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket' );