Cette page explique comment accéder à une base de données Spanner lorsque vous utilisez le contrôle des accès ultraprécis.
Pour en savoir plus sur le contrôle des accès ultraprécis, consultez À propos du contrôle des accès ultraprécis.
En tant qu'utilisateur du contrôle des accès ultraprécis, vous devez sélectionner un rôle de base de données à utiliser pour exécuter des instructions et des requêtes SQL, et pour effectuer des opérations sur les lignes d'une base de données. Votre sélection de rôle persiste tout au long de votre session jusqu'à ce que vous la modifiiez.
Lorsque vous envoyez une requête, une opération LMD ou une opération sur les lignes, Spanner vérifie l'autorisation à l'aide des règles suivantes :
- Google Cloud Console
Spanner vérifie d'abord si vous disposez d'autorisations Identity and Access Management (IAM) au niveau de la base de données. Si c'est le cas, la Google Cloud console n'affiche pas de sélecteur de rôle de base de données, et votre session se poursuit avec vos autorisations au niveau de la base de données.
Si vous ne disposez que de privilèges de contrôle des accès ultraprécis et d'aucune autorisation IAM au niveau de la base de données, vous devez avoir reçu l'autorisation d'accéder au rôle système
spanner_sys_readerou à l'un de ses rôles membres. Sélectionnez un rôle sur la page Overview (Présentation) de la base de données afin que votre Google Cloud session de console se poursuive avec les privilèges requis.roles/spanner.viewer
- Google Cloud SDK
Si vous spécifiez un rôle de base de données lorsque vous envoyez une requête, une opération LMD ou une opération sur les lignes, Spanner vérifie les privilèges de contrôle des accès ultraprécis. Si la vérification échoue, Spanner ne recherche pas les autorisations IAM au niveau de la base de données, et l'opération échoue.
Si vous ne spécifiez pas de rôle de base de données, Spanner vérifie les autorisations IAM au niveau de la base de données. Si les vérifications réussissent, votre session se poursuit avec vos autorisations au niveau de la base de données.
Utilisez ces méthodes pour spécifier un rôle de base de données lorsque vous accédez à une base de données Spanner :
Console
Sélectionnez une base de données, puis, sur la page Overview (Présentation) de la base de données, cliquez sur l'icône Change database role (Modifier le rôle de base de données) (crayon) à côté du champ Current role (Rôle actuel).
Par défaut, lorsqu'un utilisateur du contrôle des accès ultraprécis se connecte, ce champ a la valeur
public. Pour en savoir plus sur le rôle systèmepublic, consultez Rôles système pour le contrôle des accès ultraprécis.Dans la boîte de dialogue Change database role (Modifier le rôle de base de données), sélectionnez un autre rôle dans la liste des rôles disponibles.
Cliquez sur Update (Mettre à jour).
Le champ Current role (Rôle actuel) affiche le nouveau rôle.
gcloud
Ajoutez l'
--database-roleoption à lagcloud spanner databases execute-sqlcommande, comme suit :gcloud spanner databases execute-sql DATABASE_NAME \ --instance=INSTANCE_NAME \ --sql="SELECT * from TABLE_NAME;" \ --database-role=ROLE_NAME
Bibliothèques clientes
C++
C#
Go
Java
Node.js
PHP
Python
Ruby