Cette page explique comment configurer un contrôle d'accès précis pour Spanner pour les bases de données au format GoogleSQL et au format PostgreSQL.
Pour en savoir plus sur le contrôle précis des accès, consultez la page À propos du contrôle précis des accès.
Pour configurer un contrôle précis des accès, procédez comme suit:
Accordez l'accès aux rôles de base de données aux principaux IAM (Identity and Access Management).
Demandez aux utilisateurs et aux développeurs de commencer à utiliser les rôles de base de données.
Les utilisateurs du contrôle des accès ultraprécis doivent ensuite spécifier un rôle de base de données pour effectuer des requêtes, des instructions DML ou des opérations sur les lignes de la base de données.
Avant de commencer
Assurez-vous que chaque compte principal devant être un utilisateur du contrôle des accès ultraprécis se voit attribuer le rôle IAM Cloud Spanner Viewer
(roles/spanner.viewer
). Ce rôle est recommandé au niveau du projet pour les utilisateurs qui doivent interagir avec les ressources Spanner dans la console Google Cloud.
Pour obtenir des instructions, consultez la section Accorder des autorisations aux principaux.
Créer des rôles de base de données et accorder des droits
Un rôle de base de données est un ensemble d'autorisations d'accès précises. Vous pouvez créer jusqu'à 100 rôles de base de données pour chaque base de données.
Déterminez les rôles et les hiérarchies de rôles dans votre base de données, puis encodez-les en LDD. Comme pour les autres modifications de schéma dans Spanner, nous vous recommandons vivement d'effectuer les modifications de schéma par lot plutôt que séparément. Pour en savoir plus, consultez la section Limiter la fréquence des mises à jour de schéma.
Console
Pour créer un rôle de base de données et lui accorder des droits d'accès précis, procédez comme suit:
Accédez à la page Instances de la console Google Cloud.
Sélectionnez l'instance contenant la base de données pour laquelle vous souhaitez ajouter le rôle.
Sélectionnez la base de données.
Sur la page Overview (Vue d'ensemble), cliquez sur Spanner Studio.
Sur la page Spanner Studio, pour chaque rôle de base de données que vous souhaitez créer et auquel accorder des autorisations, procédez comme suit:
Pour créer le rôle, saisissez l'instruction suivante:
CREATE ROLE ROLE_NAME;
Ne cliquez pas encore sur Envoyer.
Pour accorder des droits au rôle, saisissez une instruction
GRANT
sur la ligne suivante après l'instructionCREATE ROLE
.Pour en savoir plus sur la syntaxe de l'instruction
GRANT
, consultez le langage de définition de données GoogleSQL. Pour en savoir plus sur les droits, consultez la section Droits de contrôle des accès précis.Par exemple, pour accorder
SELECT
,INSERT
etUPDATE
sur les tablesemployees
etcontractors
au rôle de base de donnéeshr_manager
, saisissez l'instruction suivante:GoogleSQL
GRANT SELECT, INSERT, UPDATE ON TABLE employees, contractors TO ROLE hr_manager;
PostgreSQL
GRANT SELECT, INSERT, UPDATE ON TABLE employees, contractors TO hr_manager;
Vous pouvez utiliser un modèle DDL pour l'instruction
GRANT
. Dans le volet Explorateur, accédez au rôle pour lequel vous souhaitez accorder des droits. Cliquez sur Afficher les actions, puis sélectionnez le type de droit auquel vous souhaitez accorder l'accès pour ce rôle. L'instruction de modèleGRANT
est renseignée dans un nouvel onglet de l'éditeur.
Cliquez sur Envoyer.
Si votre LDD contient des erreurs, la console Google Cloud renvoie une erreur.
gcloud
Pour créer un rôle de base de données et lui accorder des droits d'accès précis, utilisez la commande gcloud spanner databases ddl update
avec les instructions CREATE ROLE
et GRANT
.
Pour en savoir plus sur la syntaxe des instructions CREATE ROLE
et GRANT
, consultez le langage de définition de données GoogleSQL.
Par exemple, utilisez la commande suivante pour créer un rôle de base de données et lui accorder des droits sur une ou plusieurs tables.
GoogleSQL
gcloud spanner databases ddl update DATABASE_NAME --instance=INSTANCE_NAME \ --ddl='CREATE ROLE ROLE_NAME; GRANT PRIVILEGES ON TABLE TABLES TO ROLE ROLE_NAME;'
PostgreSQL
gcloud spanner databases ddl update DATABASE_NAME --instance=INSTANCE_NAME \ --ddl='CREATE ROLE ROLE_NAME; GRANT PRIVILEGES ON TABLE TABLES TO ROLE_NAME;'
Remplacez les éléments suivants :
PRIVILEGES
est une liste d'autorisations de contrôle d'accès précises, séparées par une virgule. Pour en savoir plus sur les droits, consultez la section Droits de contrôle des accès précis.TABLES
est une liste de tables séparées par des virgules.
Par exemple, pour accorder SELECT
, INSERT
et UPDATE
sur les tables employees
et contractors
au rôle de base de données hr_analyst
dans la base de données hrdb1
de l'instance hr
, saisissez l'instruction suivante:
GoogleSQL
gcloud spanner databases ddl update hrdb1 --instance=hr \ --ddl='CREATE ROLE hr_analyst; GRANT SELECT, INSERT, UPDATE ON TABLE employees, contractors TO ROLE hr_analyst;'
PostgreSQL
gcloud spanner databases ddl update hrdb1 --instance=hr \ --ddl='CREATE ROLE hr_analyst; GRANT SELECT, INSERT, UPDATE ON TABLE employees, contractors TO hr_analyst;'
Bibliothèques clientes
Ces exemples de code créent et suppriment un rôle de base de données.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Créer une hiérarchie de rôles avec héritage
Vous pouvez créer une hiérarchie de rôles de base de données en attribuant un rôle de base de données à un autre. Les rôles enfants (appelés rôles de membre) héritent des droits du rôle parent.
Pour attribuer un rôle de base de données à un autre rôle de base de données, utilisez l'instruction suivante:
GoogleSQL
GRANT ROLE role1 TO ROLE role2;
PostgreSQL
GRANT role1 TO role2;
Pour en savoir plus, consultez la section Hiérarchies et héritage des rôles de base de données.
Accorder l'accès aux rôles de base de données aux comptes principaux IAM
Avant qu'un compte principal puisse utiliser un rôle de base de données pour accéder aux ressources Spanner, vous devez lui accorder l'accès à ce rôle.
Console
Pour accorder l'accès à des rôles de base de données à un compte principal IAM, procédez comme suit:
Sur la page Vue d'ensemble de la base de données, cliquez sur AFFICHER LE PANNEAU D'INFORMATIONS si le panneau d'informations n'est pas déjà ouvert.
Cliquez sur AJOUTER UN COMPTE PRINCIPAL.
Dans le panneau Accorder l'accès à database_name, sous Ajouter des comptes principaux, spécifiez un ou plusieurs comptes principaux IAM.
Sous Attribuer des rôles, dans le menu Sélectionner un rôle, sélectionnez Cloud Spanner > Utilisateur Cloud Spanner à accès précis.
Vous ne devez attribuer ce rôle qu'une seule fois à chaque principal. Il fait du principal un utilisateur du contrôle des accès précis.
Cliquez sur AJOUTER UN AUTRE RÔLE.
Dans le menu Sélectionner un rôle, sélectionnez Cloud Spanner > Utilisateur du rôle de base de données Cloud Spanner.
Suivez ces étapes pour créer la condition IAM qui spécifie les rôles à accorder.
À côté du rôle "Utilisateur de rôle de base de données Cloud Spanner", cliquez sur AJOUTER UNE CONDITION IAM.
Dans le panneau Ajouter une condition, saisissez un titre et une description facultative pour la condition.
Si vous accordez un seul rôle de base de données, vous devez généralement inclure le nom du rôle dans le titre de la condition. Si vous accordez plusieurs rôles, vous pouvez indiquer quelque chose à propos de l'ensemble de rôles.
Cliquez sur ÉDITEUR DE CONDITIONS.
Dans le champ Expression, saisissez le code suivant:
resource.type == "spanner.googleapis.com/DatabaseRole" && resource.name.endsWith("/ROLE")
Remplacez
ROLE
par le nom de votre rôle.Pour accorder à un compte principal l'accès à plusieurs rôles, ajoutez d'autres conditions avec l'opérateur ou (
||
), comme illustré dans l'exemple suivant:resource.type == "spanner.googleapis.com/DatabaseRole" && (resource.name.endsWith("/ROLE1") || resource.name.endsWith("/ROLE2"))
Ce code accorde deux rôles. Remplacez
ROLE1
etROLE2
par les noms de vos rôles. Pour attribuer plus de deux rôles, ajoutez des conditions ou.Vous pouvez utiliser n'importe quelle expression de condition compatible avec IAM. Pour en savoir plus, consultez la page Présentation des conditions IAM.
Cliquez sur Enregistrer.
De retour dans le panneau précédent, vérifiez que la condition s'affiche dans la colonne Condition IAM à côté du champ Rôle.
Cliquez sur Enregistrer.
De retour dans le panneau d'informations, sous Rôle/Principal, vous pouvez constater que Utilisateur de rôle de base de données Cloud Spanner s'affiche pour chaque condition définie.
Le nombre entre parenthèses à côté de la condition indique le nombre de principaux auxquels le rôle de base de données est attribué par cette condition. Vous pouvez cliquer sur la flèche d'expansion pour afficher la liste des comptes principaux.
Pour corriger les erreurs dans les noms ou les conditions des rôles de base de données, ou pour ajouter des rôles de base de données supplémentaires pour un principal, procédez comme suit:
Développez l'entrée Utilisateur de rôle de base de données Cloud Spanner qui répertorie la condition souhaitée.
Cliquez sur l'icône Modifier (crayon) à côté d'un compte principal.
Dans le volet Modifier l'accès à nom_base_de_données, effectuez l'une des opérations suivantes:
Cliquez sur AJOUTER UN AUTRE RÔLE.
Pour modifier la condition, cliquez sur l'icône Modifier (crayon) à côté du nom de la condition. Sur la page Modifier la condition, cliquez sur ÉDITEUR DE CONDITIONS, apportez les corrections nécessaires, puis cliquez deux fois sur Enregistrer.
gcloud
Pour accorder l'accès à des rôles de base de données à un principal IAM, procédez comme suit:
Activez le contrôle des accès précis pour l'entité principale à l'aide de la commande
gcloud spanner databases add-iam-policy-binding
comme suit:gcloud spanner databases add-iam-policy-binding DATABASE_NAME \ --instance=INSTANCE_NAME \ --role=roles/spanner.fineGrainedAccessUser \ --member=MEMBER_NAME \ --condition=None
MEMBER_NAME
est l'identifiant du principal. Elle doit être au formatuser|group|serviceAccount:email
oudomain:domain
.Cette commande fait du principal un utilisateur de contrôle d'accès précis. N'envoyez cette commande qu'une seule fois pour chaque principal.
Si l'opération réussit, la commande affiche l'intégralité de la stratégie pour la base de données.
Accordez l'autorisation d'utiliser un ou plusieurs rôles de base de données à l'aide de la commande
gcloud spanner databases add-iam-policy-binding
comme suit:gcloud spanner databases add-iam-policy-binding DATABASE_NAME \ --instance=INSTANCE_NAME \ --role=roles/spanner.databaseRoleUser \ --member=MEMBER_NAME \ --condition=CONDITION
MEMBER_NAME
est l'identifiant du principal. Il doit être au formatuser|group|serviceAccount:email
oudomain:domain
.CONDITION
est une expression de condition IAM qui spécifie les rôles à attribuer au compte principal.CONDITION
a le format suivant:--condition='expression=(resource.type == "spanner.googleapis.com/DatabaseRole" && resource.name.endsWith("/ROLE1")),title=TITLE,description=DESCRIPTION'
Pour accorder à l'entité de sécurité l'accès à plusieurs rôles, ajoutez d'autres conditions avec l'opérateur ou (
||
), comme illustré dans l'exemple suivant:--condition='expression=(resource.type == "spanner.googleapis.com/DatabaseRole" && (resource.name.endsWith("/ROLE1") || resource.name.endsWith("/ROLE2"))),title=TITLE,description=DESCRIPTION'
Ce code accorde deux rôles. Remplacez
ROLE1
etROLE2
par les noms de vos rôles. Pour attribuer plus de deux rôles, ajoutez d'autres conditions ou avec l'opérateur||
.Vous pouvez utiliser n'importe quelle expression de condition compatible avec IAM. Pour en savoir plus, consultez la page Présentation des conditions IAM.
Si l'opération réussit, la commande affiche l'intégralité de la stratégie pour la base de données.
L'exemple suivant accorde les rôles de base de données
hr_rep
ethr_manager
au principaljsmith@example.com
.gcloud spanner databases add-iam-policy-binding myDatabase \ --instance=myInstance \ --role=roles/spanner.databaseRoleUser \ --member=user:jsmith@example.com \ --condition='expression=(resource.type == "spanner.googleapis.com/DatabaseRole" && (resource.name.endsWith("/hr_rep") || resource.name.endsWith("/hr_manager"))),title=HR roles,description=Grant permissions on HR roles'
Bibliothèques clientes
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Demander aux utilisateurs et aux développeurs de commencer à utiliser les rôles de base de données
Une fois la configuration initiale du contrôle des accès ultraprécis terminée, informez les utilisateurs et les développeurs d'applications qu'ils doivent commencer à utiliser des rôles de base de données.
Les utilisateurs du contrôle des accès ultraprécis doivent commencer à spécifier un rôle de base de données lorsqu'ils accèdent aux bases de données Spanner via la console Google Cloud ou la Google Cloud CLI.
Les applications qui utilisent le contrôle des accès précis doivent spécifier un rôle de base de données lorsqu'elles y accèdent.
Pour en savoir plus, consultez la section Accéder à une base de données avec un contrôle des accès précis.
Passer d'un principal au contrôle précis des accès
Pour passer d'un contrôle d'accès au niveau de la base de données à un contrôle d'accès précis pour un principal IAM, procédez comme suit:
Activez le contrôle précis des accès pour le compte principal et accordez l'accès à tous les rôles de base de données requis, comme décrit dans la section Accorder l'accès aux rôles de base de données aux comptes principaux IAM.
Mettez à jour toutes les applications exécutées en tant que ce compte principal. Spécifiez les rôles de base de données appropriés dans les appels aux méthodes de la bibliothèque cliente.
Révoquez tous les rôles IAM au niveau de la base de données du principal. De cette manière, l'accès du principal n'est régi que par une seule méthode.
Exception: Pour interagir avec les ressources Spanner dans la console Google Cloud, tous les utilisateurs doivent disposer du rôle IAM
roles/spanner.viewer
.Pour révoquer des rôles IAM au niveau de la base de données, suivez les instructions de la section Supprimer les autorisations au niveau de la base de données.
Lister les rôles de base de données
Vous pouvez lister les rôles de base de données associés à une base de données.
Console
Pour lister les rôles de base de données, saisissez la requête suivante sur la page Spanner Studio de la base de données:
GoogleSQL
SELECT * FROM INFORMATION_SCHEMA.ROLES;
PostgreSQL
SELECT * FROM information_schema.enabled_roles;
La réponse inclut le rôle actuel et les rôles dont le rôle actuel peut utiliser les droits par héritage. Pour récupérer tous les rôles, utilisez la commande Google Cloud CLI.
gcloud
Pour obtenir une liste non filtrée des rôles de base de données, saisissez la commande suivante.
Elle nécessite l'autorisation spanner.databaseRoles.list
.
gcloud spanner databases roles list --database=DATABASE_NAME --instance=INSTANCE_NAME
Bibliothèques clientes
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Afficher les droits accordés à un rôle de base de données
Pour afficher les droits accordés à un rôle, exécutez les requêtes suivantes:
GoogleSQL
SELECT * FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES WHERE grantee = 'ROLE_NAME'; SELECT * FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES WHERE grantee = 'ROLE_NAME'; SELECT * FROM INFORMATION_SCHEMA.CHANGE_STREAM_PRIVILEGES WHERE grantee = 'ROLE_NAME';
INFORMATION_SCHEMA.TABLE_PRIVILEGES
renvoie des droits sur les tables et les vues.
Les droits SELECT
, INSERT
et UPDATE
dans TABLE_PRIVILEGES
sont également affichés dans COLUMN_PRIVILEGES
.
PostgreSQL
SELECT * FROM information_schema.table_privileges WHERE grantee = 'ROLE_NAME'; SELECT * FROM information_schema.column_privileges WHERE grantee = 'ROLE_NAME'; SELECT * FROM information_schema.change_stream_privileges WHERE grantee = 'ROLE_NAME';
information_schema.table_privileges
renvoie des droits sur les tables et les vues.
Les droits SELECT
, INSERT
et UPDATE
dans table_privileges
sont également affichés dans column_privileges
.
Afficher les utilisateurs du contrôle précis des accès
Pour afficher la liste des principaux qui sont des utilisateurs de contrôle des accès ultraprécis, exécutez la commande suivante. Pour exécuter la commande, vous devez activer l'API Cloud Asset sur votre projet et disposer de l'autorisation IAM cloudasset.assets.searchAllIamPolicies
.
gcloud asset search-all-iam-policies \ --scope=projects/PROJECT_NAME \ --query='roles=roles/spanner.fineGrainedAccessUser AND resource=//spanner.googleapis.com/projects/PROJECT_NAME/instances/INSTANCE_NAME/databases/DATABASE_NAME' \ --flatten=policy.bindings[].members[] \ --format='table(policy.bindings.members)'
Le résultat ressemble à ce qui suit :
MEMBERS user:222larabrown@gmail.com user:baklavainthebalkans@gmail.com serviceAccount:cs-fgac-sa-1@cloud-spanner-demo.google.com.iam.gserviceaccount.com serviceAccount:cs-fgac-sa-2@cloud-spanner-demo.google.com.iam.gserviceaccount.com
Pour en savoir plus, consultez Activer une API dans votre projet Google Cloud.
Afficher les comptes principaux IAM ayant accès à un rôle de base de données
Pour afficher la liste des principaux auxquels un accès à un rôle de base de données spécifique a été accordé, exécutez la commande suivante. Pour exécuter la commande, vous devez activer l'API Cloud Asset dans votre projet et disposer de l'autorisation IAM cloudasset.assets.searchAllIamPolicies
.
gcloud asset search-all-iam-policies \ --scope=projects/PROJECT_NAME \ --query='roles=roles/spanner.databaseRoleUser AND policy:"resource.name" AND policy:/ROLE_NAME AND resource=//spanner.googleapis.com/projects/PROJECT_NAME/instances/INSTANCE_NAME/databases/DATABASE_NAME' \ --flatten=policy.bindings[].members[] \ --format='table(policy.bindings.members)'
Le résultat ressemble à ce qui suit :
MEMBERS 222larabrown@gmail.com
Afficher les conditions IAM d'un principal
Pour afficher la liste des conditions IAM spécifiées lors de l'attribution du rôle Utilisateur de rôle de base de données Cloud Spanner à un compte principal, exécutez la commande suivante:
gcloud asset search-all-iam-policies \ --scope=projects/PROJECT_NAME \ --query='roles=roles/spanner.databaseRoleUser AND policy:resource.name AND policy:"PRINCIPAL_IDENTIFIER" AND resource=//spanner.googleapis.com/projects/PROJECT_NAME/instances/INSTANCE_NAME/databases/DATABASE_NAME' \ --flatten=policy.bindings[] \ --format='table(policy.bindings.condition.expression)'
où PRINCIPAL_IDENTIFIER correspond à:
{ user:user-account-name | serviceAccount:service-account-name }
Exemples PRINCIPAL_IDENTIFIER:
user:222larabrown@gmail.com serviceAccount:cs-fgac-sa-1@cloud-spanner-demo.google.com.iam.gserviceaccount.com
L'exemple de sortie suivant affiche deux expressions conditionnelles.
EXPRESSION resource.type == "spanner.googleapis.com/DatabaseRole" && resource.name.endsWith("/hr_analyst") resource.type == "spanner.googleapis.com/DatabaseRole" && resource.name.endsWith("/hr_manager")
Vérifier les stratégies IAM pour les conditions de rôle de base de données manquantes
Une fois que vous avez accordé l'accès aux rôles de base de données aux comptes principaux, nous vous recommandons de vous assurer qu'une condition est spécifiée pour chaque liaison IAM.
Pour effectuer cette vérification, exécutez la commande suivante:
gcloud asset search-all-iam-policies \ --scope=projects/PROJECT_NAME \ --query='roles:roles/spanner.databaseRoleUser AND resource=//spanner.googleapis.com/projects/PROJECT_NAME/instances/INSTANCE_NAME/databases/DATABASE_NAME' --flatten=policy.bindings[].members[]
Le résultat ressemble à ce qui suit :
ROLE MEMBERS EXPRESSION roles/spanner.databaseRoleUser serviceAccount:cs-fgac-sa-1@... roles/spanner.databaseRoleUser serviceAccount:cs-fgac-sa-2@... resource.type == "spanner…"
Notez qu'une condition est manquante pour le premier résultat. Par conséquent, les principaux de cette liaison ont accès à tous les rôles de base de données.
Supprimer un rôle de base de données
Si vous supprimez un rôle de base de données, les autres rôles ne sont plus membres de ce rôle et ce rôle ne fait plus partie d'autres rôles.
Pour supprimer un rôle de base de données, vous devez d'abord effectuer les opérations suivantes:
- Révoquez tous les droits de contrôle des accès précis du rôle.
- Supprimez toutes les liaisons de stratégie IAM qui font référence à ce rôle, afin qu'un rôle de base de données créé ultérieurement avec le même nom n'hérite pas de ces liaisons.
Console
Pour supprimer un rôle de base de données, procédez comme suit:
Sur la page Présentation de la base de données, cliquez sur Spanner Studio.
Pour révoquer des droits du rôle, saisissez une instruction
REVOKE
.GoogleSQL
Pour en savoir plus sur la syntaxe de l'instruction
REVOKE
, consultez le langage de définition de données GoogleSQL. Pour en savoir plus sur les droits, consultez la section Droits de contrôle des accès précis.Par exemple, pour révoquer
SELECT
,INSERT
etUPDATE
sur les tablesemployees
etcontractors
du rôle de base de donnéeshr_manager
, saisissez l'instruction suivante:REVOKE SELECT, INSERT, UPDATE ON TABLE employees, contractors FROM ROLE hr_manager;
PostgreSQL
Pour en savoir plus sur la syntaxe de l'instruction
REVOKE
, consultez le langage de définition de données PostgreSQL. Pour en savoir plus sur les droits, consultez la section Droits de contrôle des accès précis.Par exemple, pour révoquer les droits
SELECT
,INSERT
etUPDATE
sur les tablesemployees
etcontractors
du rôle de base de donnéeshr_manager
, saisissez l'instruction suivante:REVOKE SELECT, INSERT, UPDATE ON TABLE employees, contractors FROM hr_manager;
Vous pouvez utiliser un modèle DDL pour l'instruction
REVOKE
. Dans le volet Explorateur, accédez au rôle pour lequel vous souhaitez révoquer l'accès. Cliquez sur Afficher les actions, puis sélectionnez le type de droit pour lequel vous souhaitez révoquer l'accès pour ce rôle. L'instruction de modèleREVOKE
est renseignée dans un nouvel onglet de l'éditeur.Supprimez toute condition IAM associée au rôle.
Dans la liste des rôles du panneau d'informations, recherchez le rôle Utilisateur de rôle de base de données Cloud Spanner à côté duquel figure le titre de la condition qui vous intéresse, puis développez le rôle pour afficher les comptes principaux qui y ont accès.
Pour l'un des comptes principaux, cliquez sur l'icône Modifier le compte principal (crayon).
Sur la page Modifier l'accès, cliquez sur l'icône Supprimer le rôle (poubelle) à côté du rôle Utilisateur de rôle de base de données Cloud Spanner.
Cliquez sur Enregistrer.
Répétez les trois étapes précédentes pour les autres principaux listés sous la condition.
Pour supprimer le rôle, accédez à la page Spanner Studio et saisissez l'instruction suivante:
DROP ROLE ROLE_NAME;
Cliquez sur Envoyer.
gcloud
Pour révoquer tous les droits d'un rôle, puis le supprimer, utilisez la commande
gcloud spanner databases ddl update
comme suit:GoogleSQL
gcloud spanner databases ddl update DATABASE_NAME \ --instance=INSTANCE_NAME \ --ddl='REVOKE PERMISSIONS ON TABLE TABLE_NAME FROM ROLE ROLE_NAME; DROP ROLE ROLE_NAME;'
PostgreSQL
gcloud spanner databases ddl update DATABASE_NAME \ --instance=INSTANCE_NAME \ --ddl='REVOKE PERMISSIONS ON TABLE TABLE_NAME FROM ROLE_NAME; DROP ROLE ROLE_NAME;'
Les valeurs valides pour
PERMISSIONS
sontSELECT
,INSERT
,UPDATE
etDELETE
.Pour supprimer toutes les conditions IAM associées, utilisez la commande
gcloud spanner databases remove-iam-policy-binding
comme suit:gcloud spanner databases remove-iam-policy-binding DATABASE_NAME \ --instance=INSTANCE_NAME \ --role=ROLE_NAME \ --member=MEMBER_NAME \ --condition=CONDITION
MEMBER_NAME
est l'identifiant du principal. Il doit être au formatuser|group|serviceAccount:email
oudomain:domain
.CONDITION
est une expression de condition IAM qui spécifie les rôles à attribuer au compte principal.CONDITION
a le format suivant:--condition='expression=(resource.type == "spanner.googleapis.com/DatabaseRole" && (resource.name.endsWith("/ROLE1") || resource.name.endsWith("/ROLE2"))),title=TITLE,description=DESCRIPTION'
L'intégralité de la spécification de condition doit correspondre exactement à la spécification de condition utilisée dans la commande ayant accordé l'autorisation, y compris le titre et la description.
Bibliothèques clientes
Ces exemples de code créent et suppriment un rôle de base de données.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
En savoir plus
- À propos du contrôle précis des accès
- Contrôle précis des accès pour les flux de modifications
- Privilèges de contrôle précis des accès
- Référence GoogleSQL sur le langage de définition de données (LDD)
- Mettre à jour le schéma