This document describes audit logging performed on Spanner. It describes which methods are audited and details about the audit log each method produces. It describes which methods generate audit logs and the content of each log. It also identifies methods that don't produce audit logs. Google Cloud generates audit logs that record administrative activities and access events within your Google Cloud resources. For more information, see Cloud Audit Logs overview.
Notes
To view the time it took to process a DATA_READ
or DATA_WRITE
request, refer to the Processing Duration section.
Service name
Spanner audit logs use the service name spanner.googleapis.com
.
Methods by permission type
Data access methods Read
, StreamingRead
, ExecuteSql
, and ExecuteStreamingSql
that perform a read operation might also start a read-write transaction if specified in the method's TransactionSelector
. In such cases, the method will check both DATA_READ
and DATA_WRITE
permission types.
Methods that check DATA_READ
, DATA_WRITE
, and
ADMIN_READ
permissions generate logs categorized as
Data Access audit logs.
Methods that check ADMIN_WRITE
permissions generate logs
categorized as
Admin Activity audit logs.
Permission type | Methods |
---|---|
ADMIN_READ |
google.longrunning.Operations.GetOperation google.longrunning.Operations.ListOperations google.spanner.admin.database.v1.DatabaseAdmin.GetBackup google.spanner.admin.database.v1.DatabaseAdmin.GetDatabase google.spanner.admin.database.v1.DatabaseAdmin.GetDatabaseDdl google.spanner.admin.database.v1.DatabaseAdmin.GetIamPolicy google.spanner.admin.database.v1.DatabaseAdmin.ListBackupOperations google.spanner.admin.database.v1.DatabaseAdmin.ListBackups google.spanner.admin.database.v1.DatabaseAdmin.ListDatabaseOperations google.spanner.admin.database.v1.DatabaseAdmin.ListDatabaseRoles google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases google.spanner.admin.database.v1.DatabaseAdmin.TestIamPermissions google.spanner.admin.instance.v1.InstanceAdmin.GetIamPolicy google.spanner.admin.instance.v1.InstanceAdmin.GetInstance google.spanner.admin.instance.v1.InstanceAdmin.GetInstanceConfig google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigs google.spanner.admin.instance.v1.InstanceAdmin.ListInstances google.spanner.admin.instance.v1.InstanceAdmin.SetIamPolicy google.spanner.admin.instance.v1.InstanceAdmin.TestIamPermissions |
ADMIN_WRITE |
google.longrunning.Operations.CancelOperation google.spanner.admin.database.v1.DatabaseAdmin.ChangeQuorum google.spanner.admin.database.v1.DatabaseAdmin.CopyBackup google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup google.spanner.admin.database.v1.DatabaseAdmin.CreateDatabase google.spanner.admin.database.v1.DatabaseAdmin.DeleteBackup google.spanner.admin.database.v1.DatabaseAdmin.DropDatabase google.spanner.admin.database.v1.DatabaseAdmin.RestoreDatabase google.spanner.admin.database.v1.DatabaseAdmin.SetIamPolicy google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackup google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabase google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl google.spanner.admin.instance.v1.InstanceAdmin.CreateInstance google.spanner.admin.instance.v1.InstanceAdmin.CreateInstanceConfig google.spanner.admin.instance.v1.InstanceAdmin.DeleteInstance google.spanner.admin.instance.v1.InstanceAdmin.DeleteInstanceConfig google.spanner.admin.instance.v1.InstanceAdmin.MoveInstance google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstance google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstanceConfig |
DATA_READ |
google.cloud.keyvisualizer.KeyVisualizer.GetScan google.spanner.v1.Spanner.BeginTransaction google.spanner.v1.Spanner.ExecuteStreamingSql google.spanner.v1.Spanner.GetSession google.spanner.v1.Spanner.ListSessions google.spanner.v1.Spanner.PartitionQuery google.spanner.v1.Spanner.PartitionRead google.spanner.v1.Spanner.Read google.spanner.v1.Spanner.StreamingRead |
DATA_WRITE |
google.spanner.v1.Spanner.BatchCreateSessions google.spanner.v1.Spanner.BatchWrite google.spanner.v1.Spanner.Commit google.spanner.v1.Spanner.CreateSession google.spanner.v1.Spanner.DeleteSession google.spanner.v1.Spanner.ExecuteBatchDml google.spanner.v1.Spanner.ExecuteSql google.spanner.v1.Spanner.Rollback |
Audit logs for each API interface
For more information about which permissions are evaluated for each method, see the Identity and Access Management documentation for Spanner.
google.cloud.keyvisualizer.KeyVisualizer
The following section contains details about audit logs associated with
methods belonging to google.cloud.keyvisualizer.KeyVisualizer
.
google.cloud.keyvisualizer.KeyVisualizer.GetScan
- Method:
google.cloud.keyvisualizer.KeyVisualizer.GetScan
- Audit log type: Data access
- Permissions:
spanner.databaseRoles.use - DATA_WRITE
spanner.databases.read - DATA_READ
spanner.databases.useRoleBasedAccess - DATA_WRITE
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.cloud.keyvisualizer.KeyVisualizer.GetScan"
google.longrunning.Operations
The following section contains details about audit logs associated with
methods belonging to google.longrunning.Operations
.
google.longrunning.Operations.CancelOperation
- Method:
google.longrunning.Operations.CancelOperation
- Audit log type: Admin activity
- Permissions:
spanner.backupOperations.cancel - ADMIN_WRITE
spanner.databaseOperations.cancel - ADMIN_WRITE
spanner.instanceOperations.cancel - ADMIN_WRITE
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.longrunning.Operations.CancelOperation"
google.longrunning.Operations.GetOperation
- Method:
google.longrunning.Operations.GetOperation
- Audit log type: Data access
- Permissions:
spanner.backupOperations.get - ADMIN_READ
spanner.databaseOperations.get - ADMIN_READ
spanner.instanceOperations.get - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.longrunning.Operations.GetOperation"
google.longrunning.Operations.ListOperations
- Method:
google.longrunning.Operations.ListOperations
- Audit log type: Data access
- Permissions:
spanner.backupOperations.list - ADMIN_READ
spanner.databaseOperations.list - ADMIN_READ
spanner.instanceOperations.list - ADMIN_READ
spanner.ssdCacheOperations.list - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.longrunning.Operations.ListOperations"
google.spanner.admin.database.v1.DatabaseAdmin
The following section contains details about audit logs associated with
methods belonging to google.spanner.admin.database.v1.DatabaseAdmin
.
google.spanner.admin.database.v1.DatabaseAdmin.ChangeQuorum
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.ChangeQuorum
- Audit log type: Admin activity
- Permissions:
spanner.databases.changequorum - ADMIN_WRITE
- Method is a long-running or streaming operation:
Long running operation
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.ChangeQuorum"
google.spanner.admin.database.v1.DatabaseAdmin.CopyBackup
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.CopyBackup
- Audit log type: Admin activity
- Permissions:
spanner.backups.copy - ADMIN_WRITE
spanner.backups.create - ADMIN_WRITE
- Method is a long-running or streaming operation:
Long running operation
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.CopyBackup"
google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup
- Audit log type: Admin activity
- Permissions:
spanner.backups.create - ADMIN_WRITE
spanner.databases.createBackup - ADMIN_READ
- Method is a long-running or streaming operation:
Long running operation
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup"
- Notes: The entry that is logged when the operation finishes does not contain any authentication or authorization information. Authentication and authorization information is available in the matching entry that was logged when the operation begins. To find the matching log entry in the Logs Explorer, click the log entry's
operation.id
field and then select Show matching entries in the menu.
google.spanner.admin.database.v1.DatabaseAdmin.CreateDatabase
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.CreateDatabase
- Audit log type: Admin activity
- Permissions:
spanner.databases.create - ADMIN_WRITE
- Method is a long-running or streaming operation:
Long running operation
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.CreateDatabase"
google.spanner.admin.database.v1.DatabaseAdmin.DeleteBackup
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.DeleteBackup
- Audit log type: Admin activity
- Permissions:
spanner.backups.delete - ADMIN_WRITE
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.DeleteBackup"
google.spanner.admin.database.v1.DatabaseAdmin.DropDatabase
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.DropDatabase
- Audit log type: Admin activity
- Permissions:
spanner.databases.drop - ADMIN_WRITE
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.DropDatabase"
google.spanner.admin.database.v1.DatabaseAdmin.GetBackup
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.GetBackup
- Audit log type: Data access
- Permissions:
spanner.backups.get - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.GetBackup"
google.spanner.admin.database.v1.DatabaseAdmin.GetDatabase
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.GetDatabase
- Audit log type: Data access
- Permissions:
spanner.databases.get - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.GetDatabase"
google.spanner.admin.database.v1.DatabaseAdmin.GetDatabaseDdl
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.GetDatabaseDdl
- Audit log type: Data access
- Permissions:
spanner.databases.getDdl - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.GetDatabaseDdl"
google.spanner.admin.database.v1.DatabaseAdmin.GetIamPolicy
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.GetIamPolicy
- Audit log type: Data access
- Permissions:
spanner.backups.getIamPolicy - ADMIN_READ
spanner.backups.list - ADMIN_READ
spanner.databases.list - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.GetIamPolicy"
google.spanner.admin.database.v1.DatabaseAdmin.ListBackupOperations
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.ListBackupOperations
- Audit log type: Data access
- Permissions:
spanner.backupOperations.list - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.ListBackupOperations"
google.spanner.admin.database.v1.DatabaseAdmin.ListBackups
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.ListBackups
- Audit log type: Data access
- Permissions:
spanner.backups.list - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.ListBackups"
google.spanner.admin.database.v1.DatabaseAdmin.ListDatabaseOperations
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.ListDatabaseOperations
- Audit log type: Data access
- Permissions:
spanner.databaseOperations.list - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.ListDatabaseOperations"
google.spanner.admin.database.v1.DatabaseAdmin.ListDatabaseRoles
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.ListDatabaseRoles
- Audit log type: Data access
- Permissions:
spanner.databaseRoles.list - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.ListDatabaseRoles"
google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases
- Audit log type: Data access
- Permissions:
spanner.databases.list - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases"
google.spanner.admin.database.v1.DatabaseAdmin.RestoreDatabase
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.RestoreDatabase
- Audit log type: Admin activity
- Permissions:
spanner.backups.restoreDatabase - ADMIN_READ
spanner.databases.create - ADMIN_WRITE
- Method is a long-running or streaming operation:
Long running operation
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.RestoreDatabase"
- Notes: Even though restoring a database requires authorization on two resources (the backup and restored database, which might reside in different instances), the
RestoreDatabase
event is logged only once as a single entry in the instance of the restored database. Within this entry, there will be twoauthorizationInfo
entries: one for the database, checking thespanner.databases.create
permission, and one for the backup, checking thespanner.backups.restoreDatabase
permission.
The entry that is logged when the operation finishes does not contain any authentication or authorization information. Authentication and authorization information is available in the matching entry that was logged when the operation begins. To find the matching log entry in the Logs Explorer, click the log entry'soperation.id
field and then select Show matching entries in the menu.
google.spanner.admin.database.v1.DatabaseAdmin.SetIamPolicy
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.SetIamPolicy
- Audit log type: Admin activity
- Permissions:
spanner.backups.setIamPolicy - ADMIN_WRITE
spanner.databases.list - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.SetIamPolicy"
google.spanner.admin.database.v1.DatabaseAdmin.TestIamPermissions
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.TestIamPermissions
- Audit log type: Data access
- Permissions:
spanner.backups.list - ADMIN_READ
spanner.databases.list - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.TestIamPermissions"
google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackup
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackup
- Audit log type: Admin activity
- Permissions:
spanner.backups.update - ADMIN_WRITE
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackup"
google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabase
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabase
- Audit log type: Admin activity
- Permissions:
spanner.databases.update - ADMIN_WRITE
- Method is a long-running or streaming operation:
Long running operation
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabase"
google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl
- Method:
google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl
- Audit log type: Admin activity
- Permissions:
spanner.databases.updateDdl - ADMIN_WRITE
- Method is a long-running or streaming operation:
Long running operation
- Filter for this method:
protoPayload.methodName="google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl"
google.spanner.admin.instance.v1.InstanceAdmin
The following section contains details about audit logs associated with
methods belonging to google.spanner.admin.instance.v1.InstanceAdmin
.
google.spanner.admin.instance.v1.InstanceAdmin.CreateInstance
- Method:
google.spanner.admin.instance.v1.InstanceAdmin.CreateInstance
- Audit log type: Admin activity
- Permissions:
spanner.instances.create - ADMIN_WRITE
- Method is a long-running or streaming operation:
Long running operation
- Filter for this method:
protoPayload.methodName="google.spanner.admin.instance.v1.InstanceAdmin.CreateInstance"
google.spanner.admin.instance.v1.InstanceAdmin.CreateInstanceConfig
- Method:
google.spanner.admin.instance.v1.InstanceAdmin.CreateInstanceConfig
- Audit log type: Admin activity
- Permissions:
spanner.instanceConfigs.create - ADMIN_WRITE
- Method is a long-running or streaming operation:
Long running operation
- Filter for this method:
protoPayload.methodName="google.spanner.admin.instance.v1.InstanceAdmin.CreateInstanceConfig"
google.spanner.admin.instance.v1.InstanceAdmin.DeleteInstance
- Method:
google.spanner.admin.instance.v1.InstanceAdmin.DeleteInstance
- Audit log type: Admin activity
- Permissions:
spanner.instances.delete - ADMIN_WRITE
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.instance.v1.InstanceAdmin.DeleteInstance"
google.spanner.admin.instance.v1.InstanceAdmin.DeleteInstanceConfig
- Method:
google.spanner.admin.instance.v1.InstanceAdmin.DeleteInstanceConfig
- Audit log type: Admin activity
- Permissions:
spanner.instanceConfigs.delete - ADMIN_WRITE
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.instance.v1.InstanceAdmin.DeleteInstanceConfig"
google.spanner.admin.instance.v1.InstanceAdmin.GetIamPolicy
- Method:
google.spanner.admin.instance.v1.InstanceAdmin.GetIamPolicy
- Audit log type: Data access
- Permissions:
spanner.instances.list - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.instance.v1.InstanceAdmin.GetIamPolicy"
google.spanner.admin.instance.v1.InstanceAdmin.GetInstance
- Method:
google.spanner.admin.instance.v1.InstanceAdmin.GetInstance
- Audit log type: Data access
- Permissions:
spanner.instances.get - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.instance.v1.InstanceAdmin.GetInstance"
google.spanner.admin.instance.v1.InstanceAdmin.GetInstanceConfig
- Method:
google.spanner.admin.instance.v1.InstanceAdmin.GetInstanceConfig
- Audit log type: Data access
- Permissions:
spanner.instanceConfigs.get - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.instance.v1.InstanceAdmin.GetInstanceConfig"
google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigs
- Method:
google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigs
- Audit log type: Data access
- Permissions:
spanner.instanceConfigs.list - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigs"
google.spanner.admin.instance.v1.InstanceAdmin.ListInstances
- Method:
google.spanner.admin.instance.v1.InstanceAdmin.ListInstances
- Audit log type: Data access
- Permissions:
spanner.instances.list - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.instance.v1.InstanceAdmin.ListInstances"
google.spanner.admin.instance.v1.InstanceAdmin.MoveInstance
- Method:
google.spanner.admin.instance.v1.InstanceAdmin.MoveInstance
- Audit log type: Admin activity
- Permissions:
spanner.instances.update - ADMIN_WRITE
- Method is a long-running or streaming operation:
Long running operation
- Filter for this method:
protoPayload.methodName="google.spanner.admin.instance.v1.InstanceAdmin.MoveInstance"
google.spanner.admin.instance.v1.InstanceAdmin.SetIamPolicy
- Method:
google.spanner.admin.instance.v1.InstanceAdmin.SetIamPolicy
- Audit log type: Admin activity
- Permissions:
spanner.instances.list - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.instance.v1.InstanceAdmin.SetIamPolicy"
google.spanner.admin.instance.v1.InstanceAdmin.TestIamPermissions
- Method:
google.spanner.admin.instance.v1.InstanceAdmin.TestIamPermissions
- Audit log type: Data access
- Permissions:
spanner.instances.list - ADMIN_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.admin.instance.v1.InstanceAdmin.TestIamPermissions"
google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstance
- Method:
google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstance
- Audit log type: Admin activity
- Permissions:
spanner.instances.update - ADMIN_WRITE
- Method is a long-running or streaming operation:
Long running operation
- Filter for this method:
protoPayload.methodName="google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstance"
google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstanceConfig
- Method:
google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstanceConfig
- Audit log type: Admin activity
- Permissions:
spanner.instanceConfigs.update - ADMIN_WRITE
- Method is a long-running or streaming operation:
Long running operation
- Filter for this method:
protoPayload.methodName="google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstanceConfig"
google.spanner.v1.Spanner
The following section contains details about audit logs associated with
methods belonging to google.spanner.v1.Spanner
.
google.spanner.v1.Spanner.BatchCreateSessions
- Method:
google.spanner.v1.Spanner.BatchCreateSessions
- Audit log type: Data access
- Permissions:
spanner.databaseRoles.use - DATA_WRITE
spanner.databases.useRoleBasedAccess - DATA_WRITE
spanner.sessions.create - DATA_WRITE
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.v1.Spanner.BatchCreateSessions"
google.spanner.v1.Spanner.BatchWrite
- Method:
google.spanner.v1.Spanner.BatchWrite
- Audit log type: Data access
- Permissions:
spanner.databases.write - DATA_WRITE
- Method is a long-running or streaming operation:
Streaming RPC
- Filter for this method:
protoPayload.methodName="google.spanner.v1.Spanner.BatchWrite"
google.spanner.v1.Spanner.BeginTransaction
- Method:
google.spanner.v1.Spanner.BeginTransaction
- Audit log type: Data access
- Permissions:
spanner.databaseRoles.use - DATA_WRITE
spanner.databases.beginOrRollbackReadWriteTransaction - DATA_WRITE
spanner.databases.beginPartitionedDmlTransaction - DATA_WRITE
spanner.databases.beginReadOnlyTransaction - DATA_READ
spanner.databases.useRoleBasedAccess - DATA_WRITE
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.v1.Spanner.BeginTransaction"
- Notes: This method will be
DATA_READ
for a ReadOnly transaction andDATA_WRITE
for a ReadWrite transaction.
google.spanner.v1.Spanner.Commit
- Method:
google.spanner.v1.Spanner.Commit
- Audit log type: Data access
- Permissions:
spanner.databaseRoles.use - DATA_WRITE
spanner.databases.useRoleBasedAccess - DATA_WRITE
spanner.databases.write - DATA_WRITE
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.v1.Spanner.Commit"
google.spanner.v1.Spanner.CreateSession
- Method:
google.spanner.v1.Spanner.CreateSession
- Audit log type: Data access
- Permissions:
spanner.databaseRoles.use - DATA_WRITE
spanner.databases.useRoleBasedAccess - DATA_WRITE
spanner.sessions.create - DATA_WRITE
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.v1.Spanner.CreateSession"
google.spanner.v1.Spanner.DeleteSession
- Method:
google.spanner.v1.Spanner.DeleteSession
- Audit log type: Data access
- Permissions:
spanner.databaseRoles.use - DATA_WRITE
spanner.databases.useRoleBasedAccess - DATA_WRITE
spanner.sessions.delete - DATA_WRITE
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.v1.Spanner.DeleteSession"
google.spanner.v1.Spanner.ExecuteBatchDml
- Method:
google.spanner.v1.Spanner.ExecuteBatchDml
- Audit log type: Data access
- Permissions:
spanner.databases.beginOrRollbackReadWriteTransaction - DATA_WRITE
spanner.databases.write - DATA_WRITE
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.v1.Spanner.ExecuteBatchDml"
google.spanner.v1.Spanner.ExecuteSql
- Method:
google.spanner.v1.Spanner.ExecuteSql
- Audit log type: Data access
- Permissions: See IAM documentation for permissions.
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.v1.Spanner.ExecuteSql"
- Notes: This method might also start a read-write transaction if specified in the method's
TransactionSelector
. In such cases, the method will match bothDATA_READ
andDATA_WRITE
permission types.
google.spanner.v1.Spanner.ExecuteStreamingSql
- Method:
google.spanner.v1.Spanner.ExecuteStreamingSql
- Audit log type: Data access
- Permissions: See IAM documentation for permissions.
- Method is a long-running or streaming operation:
Streaming RPC
- Filter for this method:
protoPayload.methodName="google.spanner.v1.Spanner.ExecuteStreamingSql"
- Notes: Note: This method might also start a read-write transaction if specified in the method's
TransactionSelector
. In such cases, the method will match bothDATA_READ
andDATA_WRITE
permission types.
google.spanner.v1.Spanner.GetSession
- Method:
google.spanner.v1.Spanner.GetSession
- Audit log type: Data access
- Permissions:
spanner.sessions.get - DATA_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.v1.Spanner.GetSession"
google.spanner.v1.Spanner.ListSessions
- Method:
google.spanner.v1.Spanner.ListSessions
- Audit log type: Data access
- Permissions:
spanner.sessions.list - DATA_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.v1.Spanner.ListSessions"
google.spanner.v1.Spanner.PartitionQuery
- Method:
google.spanner.v1.Spanner.PartitionQuery
- Audit log type: Data access
- Permissions:
spanner.databaseRoles.use - DATA_WRITE
spanner.databases.beginReadOnlyTransaction - DATA_READ
spanner.databases.partitionQuery - DATA_READ
spanner.databases.useRoleBasedAccess - DATA_WRITE
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.v1.Spanner.PartitionQuery"
google.spanner.v1.Spanner.PartitionRead
- Method:
google.spanner.v1.Spanner.PartitionRead
- Audit log type: Data access
- Permissions:
spanner.databases.partitionRead - DATA_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.v1.Spanner.PartitionRead"
google.spanner.v1.Spanner.Read
- Method:
google.spanner.v1.Spanner.Read
- Audit log type: Data access
- Permissions:
spanner.databases.beginOrRollbackReadWriteTransaction - DATA_WRITE
spanner.databases.read - DATA_READ
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.v1.Spanner.Read"
- Notes: This method might also start a read-write transaction if specified in the method's
TransactionSelector
. In such cases, the method will match bothDATA_READ
andDATA_WRITE
permission types.
Important: Requested keys are not logged.
google.spanner.v1.Spanner.Rollback
- Method:
google.spanner.v1.Spanner.Rollback
- Audit log type: Data access
- Permissions:
spanner.databaseRoles.use - DATA_WRITE
spanner.databases.beginOrRollbackReadWriteTransaction - DATA_WRITE
spanner.databases.useRoleBasedAccess - DATA_WRITE
- Method is a long-running or streaming operation:
No.
- Filter for this method:
protoPayload.methodName="google.spanner.v1.Spanner.Rollback"
google.spanner.v1.Spanner.StreamingRead
- Method:
google.spanner.v1.Spanner.StreamingRead
- Audit log type: Data access
- Permissions: See IAM documentation for permissions.
- Method is a long-running or streaming operation:
Streaming RPC
- Filter for this method:
protoPayload.methodName="google.spanner.v1.Spanner.StreamingRead"
- Notes: This method might also start a read-write transaction if specified in the method's
TransactionSelector
. In such cases, the method will match bothDATA_READ
andDATA_WRITE
permission types.
Important: Requested keys are not logged.
System events
System Event audit logs are generated by GCP systems, not direct user action. For more information, see System Event audit logs.
Method Name | Filter For This Event | Notes |
---|---|---|
AutoscaleInstance |
protoPayload.methodName="AutoscaleInstance"
|
|
OptimizeRestoredDatabase |
protoPayload.methodName="OptimizeRestoredDatabase"
|
Processing duration
To view the time it took to process a DATA_READ
or DATA_WRITE
request,
refer to the processingDurationSeconds
field within the metadata
object of
the AuditLog
. processingDurationSeconds
helps you monitor
your request latencies.
processingDurationSeconds
describes the Spanner API request
latency. It is the length of time (in seconds) between when the
Spanner API frontend receives the first byte of a request to when
it sends the last byte of a response. The time needed to process API requests in
both the Spanner backend and the API layer is the latency.
However, this latency doesn't include network or Google Front End overhead
between Spanner clients and servers. To visualize the
high-level components involved in a Spanner API request, see
Spanner end-to-end latency guide.
For example, the following is an audit log that contains
processingDurationSeconds
information:
{
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {...},
"requestMetadata": {...},
"serviceName": "spanner.googleapis.com",
"methodName": "google.spanner.v1.Spanner.Commit",
"authorizationInfo": [{...}],
"resourceName": "projects/example-project/instances/example-instance/databases/example-database/sessions/example-session",
"request": {
"transactionId": "example-transactionId",
"@type": "type.googleapis.com/google.spanner.v1.CommitRequest",
"session": "projects/example-project/instances/example-instance/databases/example-database/sessions/example-session"
},
"response": {
"@type": "type.googleapis.com/google.spanner.v1.CommitResponse",
"commitTimestamp": "2023-02-13T17:11:10.106602Z"
},
"metadata": {
"@type": "type.googleapis.com/spanner.cloud.instance_v1.QueryPerformanceMetadata",
"processingDurationSeconds": 0.1932541
}
},
"insertId": "p9ju4gdi7j0",
"resource": {...},
"timestamp": "2023-02-13T17:11:10.000093953Z",
"severity": "INFO",
"logName": "projects/example-project/logs/cloudaudit.googleapis.com%2Fdata_access",
"receiveTimestamp": "2023-02-13T17:11:11.170517524Z"
}
For ExecuteStreamingSql
, StreamingRead
, PartitionRead
or PartitionQuery
requests, the processingDurationSeconds
field is not set. To calculate the
streaming and partition request latency, see
Calculate streaming and partition request latency.