Cette page explique comment configurer le contrôle précis des accès pour les bases de données Spanner.
Pour en savoir plus sur le contrôle précis des accès, consultez la page À propos du contrôle ultraprécis des accès.
Pour configurer un contrôle des accès précis, vous devez:
Les utilisateurs du contrôle des accès ultraprécis doivent ensuite spécifier un rôle de base de données pour exécuter des requêtes. LMD, ou opérations de ligne, sur la base de données.
Avant de commencer
Assurez-vous que chaque compte principal désigné comme utilisateur du contrôle des accès ultraprécis est autorisé
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
Ressources Spanner dans la console Google Cloud.
Pour savoir comment procéder, consultez Accordez des autorisations aux comptes principaux.
Créer des rôles de base de données et octroyer des droits
Un rôle de base de données est un ensemble de privilèges d'accès précis. 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. En tant que avec d'autres modifications de schéma dans Spanner, nous vous recommandons vivement modifications de schéma par lot plutôt que séparément. Pour en savoir plus, consultez Limitez la fréquence des mises à jour du 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 dans la console Google Cloud.
Sélectionnez l'instance contenant la base de données à laquelle vous souhaitez ajouter le rôle.
Sélectionnez la base de données.
Sur la page Présentation, cliquez sur Spanner Studio.
Sur la page Spanner Studio, pour chaque rôle de base de données souhaité pour créer et accorder des droits, 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
à la prochaine après l'instructionCREATE ROLE
.Pour en savoir plus sur la syntaxe de l'instruction
GRANT
, consultez la page 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
à 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 LDD pour l'instruction
GRANT
. Dans Dans le volet Explorateur, accédez au rôle auquel vous souhaitez accorder de droits. Cliquez sur Afficher les actions. puis sélectionnez le type de droit auquel vous souhaitez accorder l'accès à ce rôle. L'instruction de modèleGRANT
s'affiche dans un nouvel onglet de l'éditeur.
Cliquez sur Envoyer.
Si votre LDD comporte des erreurs, la console Google Cloud renvoie une .
gcloud
Pour créer un rôle de base de données et lui accorder des droits d'accès précis,
utilisez 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
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 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 de valeurs séparées par des virgules. pour un contrôle des accès précis. Pour en savoir plus sur les droits, Consultez la section Droits de contrôle des accès précis.TABLES
est une liste de tableaux séparés par une virgule.
Par exemple, pour accorder SELECT
,
INSERT
et UPDATE
sur les tables employees
et contractors
à la
rôle de base de données hr_analyst
dans la base de données hrdb1
dans 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
<ph type="x-smartling-placeholder">
Node.js
<ph type="x-smartling-placeholder">
PHP
<ph type="x-smartling-placeholder">
Python
<ph type="x-smartling-placeholder">
Ruby
Créer une hiérarchie de rôles avec héritage
Vous pouvez créer une hiérarchie des rôles de base de données en attribuant un rôle à une autre. Les rôles enfants (appelés rôles de membre) héritent des droits du 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 aux comptes principaux IAM l'accès aux rôles de base de données
Avant qu'un compte principal puisse utiliser un rôle de base de données pour accéder à Spanner vous devez leur accorder l'accès au rôle de base de données.
Console
Pour accorder à un compte principal IAM l'accès aux rôles de base de données, procédez comme suit : procédez comme suit:
Sur la page Présentation de la base de données, cliquez sur AFFICHER LE PANNEAU D'INFORMATIONS si l'option Informations panneau n'est pas déjà ouvert.
Cliquez sur AJOUTER UN COMPTE PRINCIPAL.
Dans le panneau Accorder l'accès à database_name, sous Ajoutez des comptes principaux, puis 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 de l'accès précis à Cloud Spanner.
Vous ne devez attribuer ce rôle qu'une seule fois à chaque compte principal. Cela facilite en tant qu'utilisateur du contrôle ultraprécis des accès.
Cliquez sur AJOUTER UN AUTRE RÔLE.
Dans le menu Sélectionner un rôle, choisissez Cloud Spanner > Utilisateur du rôle de base de données Cloud Spanner.
Suivez ces étapes pour créer la condition IAM spécifie les rôles à attribuer.
À 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 attribuez un seul rôle de base de données, inclure le nom du rôle dans le titre de la condition. Si vous accordez à plusieurs vous pouvez donner des indications sur l'ensemble des 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.Ou, pour accorder l'accès au compte principal à plusieurs rôles, ajoutez à l'aide de l'opérateur or (
||
), comme indiqué Exemple:resource.type == "spanner.googleapis.com/DatabaseRole" && (resource.name.endsWith("/ROLE1") || resource.name.endsWith("/ROLE2"))
Ce code attribue 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.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.
Revenez au panneau précédent et vérifiez que la condition apparaît. dans la colonne Condition IAM, à côté du champ Rôle.
Cliquez sur Enregistrer.
De retour dans le panneau d'informations, sous Rôle/Compte principal, vous remarquerez que la mention Utilisateur du rôle de base de données Cloud Spanner apparaît. pour chaque condition définie.
Le nombre entre parenthèses à côté de la condition indique le nombre de comptes principaux le rôle de base de données par cette condition. Vous pouvez cliquer sur le bouton 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 compte principal, procédez comme suit:
Développez l'entrée Utilisateur du rôle de base de données Cloud Spanner qui répertorie la condition souhaitée.
Cliquez sur l'icône Modifier (en forme de crayon) à côté d'un compte principal.
Dans le panneau Modifier l'accès à database_name, effectuez l'une des opérations suivantes les éléments suivants:
Cliquez sur AJOUTER UN AUTRE RÔLE.
Pour modifier la condition, cliquez sur l'icône Modifier (en forme de crayon) située à côté. au nom de la condition. Ensuite, sur la page Modifier la condition, cliquez sur ÉDITEUR DE CONDITIONS, apportez les corrections nécessaires et cliquez sur Enregistrer. deux fois.
gcloud
Pour accorder à un compte principal IAM l'accès aux rôles de base de données, procédez comme suit:
Activez un contrôle des accès précis pour le compte principal à l'aide du
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 de principal. Il doit être au formatuser|group|serviceAccount:email
. oudomain:domain
.Cette commande fait du compte principal un utilisateur du contrôle des accès ultraprécis. Envoyer une seule fois pour chaque compte principal.
Si l'opération réussit, la commande affiche l'intégralité de la règle de la base de données.
Accordez l'autorisation d'utiliser un ou plusieurs rôles de base de données à l'aide de la
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 de principal. Il doit être au formatuser|group|serviceAccount:email
. oudomain:domain
.CONDITION
est une condition IAM. qui spécifie les rôles à attribuer au compte principal.CONDITION
se présente sous la forme suivante:--condition='expression=(resource.type == "spanner.googleapis.com/DatabaseRole" && resource.name.endsWith("/ROLE1")),title=TITLE,description=DESCRIPTION'
Ou, pour accorder l'accès au compte principal à plusieurs rôles, ajoutez à l'aide de l'opérateur or (
||
), comme indiqué Exemple:--condition='expression=(resource.type == "spanner.googleapis.com/DatabaseRole" && (resource.name.endsWith("/ROLE1") || resource.name.endsWith("/ROLE2"))),title=TITLE,description=DESCRIPTION'
Ce code attribue 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'||
.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 règle de la base de données.
L'exemple suivant attribue les rôles de base de données
hr_rep
ethr_manager
au compte 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
<ph type="x-smartling-placeholder">
Node.js
<ph type="x-smartling-placeholder">
PHP
<ph type="x-smartling-placeholder">
Python
<ph type="x-smartling-placeholder">
Ruby
Informez les utilisateurs et les développeurs qu'ils doivent commencer à utiliser les rôles de base de données
Une fois la configuration initiale ultraprécise du contrôle des accès terminée, informez les utilisateurs et les développeurs d'applications qu'ils doivent commencer à utiliser les 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éder aux bases de données Spanner via la console Google Cloud ou la Google Cloud CLI.
Les applications qui utilisent un contrôle des accès précis doivent spécifier un rôle de base de données lorsque : qui accède à la base de données.
Pour en savoir plus, consultez Accédez à une base de données avec un contrôle des accès précis.
Faire passer un compte principal à un contrôle des accès précis
Pour effectuer la transition d'un compte principal IAM au niveau de la base de données un contrôle des accès précis, procédez comme suit:
Activez un contrôle des accès ultraprécis pour le compte principal et accordez l'accès à toutes les ressources les rôles de base de données, comme décrit dans Accordez aux comptes principaux IAM l'accès aux rôles de base de données.
Mettez à jour toutes les applications qui s'exécutent en tant que compte principal. Spécifiez les champs les rôles de base de données 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 compte principal. De cette façon, l'accès du compte principal est régi par une seule méthode.
Exception: Pour interagir avec les ressources Spanner dans console Google Cloud, tous les utilisateurs doivent disposer du
roles/spanner.viewer
rôle IAM.Pour révoquer des rôles IAM au niveau de la base de données, suivez les instructions fournies dans Supprimez les autorisations au niveau de la base de données.
Lister les rôles de base de données
Vous pouvez répertorier les rôles associés à une base de données.
Console
Pour obtenir la liste des rôles de base de données, saisissez la requête suivante sur la Page Spanner Studio pour 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 les droits sont peut être utilisé via l'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.
L'autorisation spanner.databaseRoles.list
est requise.
gcloud spanner databases roles list --database=DATABASE_NAME --instance=INSTANCE_NAME
Bibliothèques clientes
C++
C#
Go
Java
<ph type="x-smartling-placeholder">
Node.js
<ph type="x-smartling-placeholder">
PHP
<ph type="x-smartling-placeholder">
Python
<ph type="x-smartling-placeholder">
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 les droits sur les tables et les vues.
Les droits SELECT
, INSERT
et UPDATE
dans TABLE_PRIVILEGES
sont également
affiché 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 les droits sur les tables et les vues.
Les droits SELECT
, INSERT
et UPDATE
dans table_privileges
sont également
affiché dans column_privileges
.
Afficher le détail des utilisateurs du contrôle des accès
Pour afficher la liste des comptes principaux correspondant aux utilisateurs du contrôle des accès ultraprécis, exécutez la commande suivante :
. Pour exécuter la commande, l'API Cloud Asset doit être activée sur votre
et vous devez disposer
cloudasset.assets.searchAllIamPolicies
une autorisation IAM.
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 la page 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 comptes principaux autorisés à accéder à un compte
de base de données, exécutez la commande suivante. Pour exécuter la commande, vous devez disposer de la
l'API Cloud Asset doit être activée sur votre projet, et vous devez disposer de la
cloudasset.assets.searchAllIamPolicies
une autorisation IAM.
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 compte principal
Afficher la liste des conditions IAM spécifiées lorsque vous attribuez le rôle Utilisateur du 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 est:
{ 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 résultat suivant montre deux expressions de condition.
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 identifier les conditions de rôle de base de données manquantes
Une fois que vous avez accordé aux comptes principaux l'accès aux rôles de base de données, de vous assurer que chaque liaison IAM comporte une condition spécifiée.
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'il manque une condition au premier résultat et que, par conséquent, les comptes 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
La suppression d'un rôle de base de données révoque automatiquement l'appartenance à d'autres rôles du rôle et révoque son appartenance à d'autres rôles.
Pour supprimer un rôle de base de données, vous devez d'abord procéder comme suit:
- Révoquez tous les droits associés au contrôle des accès ultraprécis du rôle.
- Supprimer toutes les liaisons de stratégie IAM qui font référence à ce rôle, de sorte qu'un rôle de base de données créé ultérieurement avec le même rôle 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 les droits du rôle, saisissez une instruction
REVOKE
.GoogleSQL
Pour en savoir plus sur la syntaxe de l'instruction
REVOKE
, consultez la page 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
, procédez comme suit :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 la page 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
SELECT
, procédez comme suit : DroitsINSERT
etUPDATE
suremployees
etcontractors
tables du rôle de base de donnéeshr_manager
, saisissez le l'instruction suivante:REVOKE SELECT, INSERT, UPDATE ON TABLE employees, contractors FROM hr_manager;
Vous pouvez utiliser un modèle LDD pour l'instruction
REVOKE
. Dans Dans le volet Explorateur, accédez au rôle que vous souhaitez révoquer. un privilège. Cliquez sur Afficher les actions. puis sélectionnez le type de droit dont vous souhaitez révoquer l'accès pour ce rôle. L'instruction de modèleREVOKE
s'affiche 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, localisez le Rôle Utilisateur du rôle de base de données Cloud Spanner doté du titre de la condition qui vous intéresse, puis élargissez le rôle pour afficher les comptes principaux ayant accès à ce rôle.
Pour l'un des comptes principaux, cliquez sur l'icône Modifier le compte principal (en forme de crayon).
Sur la page Modifier l'accès, cliquez sur l'icône Supprimer le rôle (corbeille). situé à 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 comptes principaux répertoriés sous la condition.
Pour supprimer le rôle, accédez à la page Spanner Studio et saisissez ce qui suit :
DROP ROLE ROLE_NAME;
Cliquez sur Envoyer.
gcloud
Pour révoquer tous les droits associés à un rôle et le supprimer, utilisez la
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 toute condition IAM associée, utilisez la méthode
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 de principal. Il doit être au formatuser|group|serviceAccount:email
. oudomain:domain
.CONDITION
est une condition IAM. qui spécifie les rôles à attribuer au compte principal.CONDITION
se présente sous la forme suivante:--condition='expression=(resource.type == "spanner.googleapis.com/DatabaseRole" && (resource.name.endsWith("/ROLE1") || resource.name.endsWith("/ROLE2"))),title=TITLE,description=DESCRIPTION'
La spécification de la condition complète doit correspondre exactement à la condition spécification qui a été utilisée dans la commande qui a 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
<ph type="x-smartling-placeholder">
Node.js
<ph type="x-smartling-placeholder">
PHP
<ph type="x-smartling-placeholder">
Python
<ph type="x-smartling-placeholder">
Ruby
En savoir plus
- À propos du contrôle ultraprécis des accès
- Contrôle ultraprécis des contrôle des accès pour les flux de modifications
- Droits de contrôle des accès ultraprécis
- Documentation de référence sur GoogleSQL LDD
- Effectuer des mises à jour de schéma