本页介绍了 Spanner 备份时间表操作,并说明了如何为数据库设置备份时间表。
准备工作
-
如需获得创建和管理备份时间表所需的权限,请让管理员向您授予实例的以下 IAM 角色:
-
创建、查看、更新和删除备份时间表:Cloud Spanner Backup Admin (
roles/spanner.backupAdmin
) -
创建和查看备份时间表:Cloud Spanner Backup Writer (
roles/spanner.backupWriter
)
-
创建、查看、更新和删除备份时间表:Cloud Spanner Backup Admin (
创建备份时间表
在 Google Cloud 控制台中,前往 Spanner 实例页面。
点击包含数据库的实例。
点击相应数据库。
在导航菜单中,点击备份/恢复。
点击创建备份时间表。
填写表单,然后点击创建。
在使用下面的命令数据之前,请先进行以下替换:
-
SCHEDULE_ID :备份时间表 ID。 PROJECT_ID :项目 ID。-
INSTANCE_ID :您要创建备份时间表的实例的 ID。 -
DATABASE_ID :您要创建备份时间表的数据库的 ID。 -
RETENTION_DURATION :由时间表创建的备份的保留时长。例如,如果您希望保留时长为一天,可以使用86400s
。 -
CRONTAB_EXPRESSION :备份时间表频率的 Crontab 表达式。例如,如果您希望备份时间安排频率为每 12 小时一次,则可以使用0 12 * * *
。 -
BACKUP_TYPE :是完整备份时间表还是增量备份时间表。可能的值为full-backup
或incremental-backup
。 -
ENCRYPTION_TYPE :由备份时间表创建的备份的加密类型。 有效值为USE_DATABASE_ENCRYPTION
、GOOGLE_DEFAULT_ENCRYPTION
或CUSTOMER_MANAGED_ENCRYPTION
。 如果您使用CUSTOMER_MANAGED_ENCRYPTION
,则必须指定kmsKeyName
。 如果您的备份类型为incremental-backup
,则加密类型必须为GOOGLE_DEFAULT_ENCRYPTION
。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud spanner backup-schedules createSCHEDULE_ID \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID \ --retention-duration=RETENTION_DURATION \ --cron="CRONTAB_EXPRESSION " \ --backup-type=BACKUP_TYPE \ --encryption-type=ENCRYPTION_TYPE
Windows (PowerShell)
gcloud spanner backup-schedules createSCHEDULE_ID ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID ` --retention-duration=RETENTION_DURATION ` --cron="CRONTAB_EXPRESSION " ` --backup-type=BACKUP_TYPE ` --encryption-type=ENCRYPTION_TYPE
Windows (cmd.exe)
gcloud spanner backup-schedules createSCHEDULE_ID ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID ^ --retention-duration=RETENTION_DURATION ^ --cron="CRONTAB_EXPRESSION " ^ --backup-type=BACKUP_TYPE ^ --encryption-type=ENCRYPTION_TYPE
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID :项目 ID。-
INSTANCE_ID :您要创建备份时间表的实例的 ID。 -
DATABASE_ID :您要创建备份时间表的数据库的 ID。 SCHEDULE_ID :备份时间表 ID。-
BACKUP_TYPE :是完整备份时间表还是增量备份时间表。 可能的值为fullBackupSpec
或incrementalBackupSpec
。 -
ENCRYPTION_TYPE :由备份时间表创建的备份的加密类型。可能的值为USE_DATABASE_ENCRYPTION
、GOOGLE_DEFAULT_ENCRYPTION
或CUSTOMER_MANAGED_ENCRYPTION
。 如果您使用CUSTOMER_MANAGED_ENCRYPTION
,则必须指定kmsKeyName
。 如果您的备份类型为incremental-backup
,则加密类型必须为GOOGLE_DEFAULT_ENCRYPTION
。 -
RETENTION_DURATION :按时间表创建的备份的保留时长。
HTTP 方法和网址:
POST https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules?backup_schedule_id=SCHEDULE_ID
请求 JSON 正文:
{ "retentionDuration": "RETENTION_DURATION ", "spec": { "cronSpec": { "text": "0 2 * * *" } }, "encryptionConfig": { "encryptionType": "ENCRYPTION_TYPE " }, "BACKUP_TYPE ": {} }
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules?backup_schedule_id=SCHEDULE_ID "
PowerShell (Windows)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules?backup_schedule_id=SCHEDULE_ID " | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID ", "retentionDuration": "86400s", "encryptionConfig": { "encryptionType": "USE_DATABASE_ENCRYPTION" }, "spec": { "cronSpec": { "text": "0 2 * * *", "timeZone": "UTC", "creationWindow": "14400s" } }, "BACKUP_TYPE ": {}, "updateTime": "2024-05-22T11:13:51.835590Z" }
如需创建完整备份时间表,请参阅以下示例代码:
如需创建增量备份时间表,请参阅以下示例代码:如需创建完整备份时间表,请参阅以下示例代码:
如需创建增量备份时间表,请参阅以下示例代码:如需创建完整备份时间表,请参阅以下示例代码:
如需创建增量备份时间表,请参阅以下示例代码:如需创建完整备份时间表,请参阅以下示例代码:
如需创建增量备份时间表,请参阅以下示例代码:如需创建完整备份时间表,请参阅以下示例代码:
如需创建增量备份时间表,请参阅以下示例代码:如需创建完整备份时间表,请参阅以下示例代码:
如需创建完整备份时间表,请参阅以下示例代码:
如需创建增量备份时间表,请参阅以下示例代码:获取备份时间表
在 Google Cloud 控制台中,前往 Spanner 实例页面。
点击包含数据库的实例。
点击相应数据库。
在导航菜单中,点击备份/恢复。
点击时间表标签页可查看所有备份时间表及其信息。
在使用下面的命令数据之前,请先进行以下替换:
PROJECT_ID :项目 ID。INSTANCE_ID :实例 ID。DATABASE_ID :数据库 ID。SCHEDULE_ID :备份时间表 ID。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud spanner backup-schedules describeSCHEDULE_ID \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID
Windows (PowerShell)
gcloud spanner backup-schedules describeSCHEDULE_ID ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID
Windows (cmd.exe)
gcloud spanner backup-schedules describeSCHEDULE_ID ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID
您应该会收到类似如下所示的响应:
{ encryptionConfig: encryptionType: USE_DATABASE_ENCRYPTION incrementalBackupSpec: {} name: projects/my-project/instances/my-instance/databases/my-database/backupSchedules/my-schedule retentionDuration: 2592000s spec: cronSpec: creationWindow: 14400s text: 0 */4 * * * timeZone: UTC updateTime: '2024-09-13T10:24:18.754839Z' }
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID :项目 ID。INSTANCE_ID :实例 ID。DATABASE_ID :数据库 ID。SCHEDULE_ID :备份时间表 ID。
HTTP 方法和网址:
GET https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID "
PowerShell (Windows)
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID " | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID ", "retentionDuration": "100000s", "encryptionConfig": { "encryptionType": "USE_DATABASE_ENCRYPTION" }, "spec": { "cronSpec": { "text": "0 2 * * *", "timeZone": "UTC", "creationWindow": "14400s" } }, "fullBackupSpec": {}, "updateTime": "2024-05-22T11:13:51.835590Z" }
列出备份时间表
在 Google Cloud 控制台中,前往 Spanner 实例页面。
点击包含数据库的实例。
点击相应数据库。
在导航菜单中,点击备份/恢复。
点击时间表标签页可查看所有备份时间表及其信息。
在使用下面的命令数据之前,请先进行以下替换:
PROJECT_ID :项目 ID。INSTANCE_ID :实例 ID。DATABASE_ID :数据库 ID。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud spanner backup-schedules list \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID
Windows (PowerShell)
gcloud spanner backup-schedules list ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID
Windows (cmd.exe)
gcloud spanner backup-schedules list ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID
您应该会收到类似如下所示的响应:
Name Backup type Cron Retention duration Encryption type my-full-schedule FULL 30 12 * * * 2592000s USE_DATABASE_ENCRYPTION my-incr-schedule INCREMENTAL 0 */4 * * * 2592000s USE_DATABASE_ENCRYPTION
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID :项目 ID。INSTANCE_ID :实例 ID。DATABASE_ID :数据库 ID。
HTTP 方法和网址:
GET https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules"
PowerShell (Windows)
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "backupSchedules": [ { "name": "projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules/SCHEDULE_ID", "retentionDuration": "172800s", "encryptionConfig": { "encryptionType": "USE_DATABASE_ENCRYPTION" }, "spec": { "cronSpec": { "text": "0 */12 * * *", "timeZone": "UTC", "creationWindow": "14400s" } }, "fullBackupSpec": {}, "updateTime": "2024-09-09T07:21:43.946180Z" }, { "name": "projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules/SCHEDULE_ID", "retentionDuration": "2592000s", "encryptionConfig": { "encryptionType": "CUSTOMER_MANAGED_ENCRYPTION", "kmsKeyName": "projects/PROJECT_ID/locations/us-central1/keyRings/cmek-demo/cryptoKeys/test-key" }, "spec": { "cronSpec": { "text": "30 12 * * *", "timeZone": "UTC", "creationWindow": "14400s" } }, "fullBackupSpec": {}, "updateTime": "2024-09-17T18:27:53.868741Z" } ] }
更新备份时间表
在 Google Cloud 控制台中,前往 Spanner 实例页面。
点击包含数据库的实例。
点击相应数据库。
在导航菜单中,点击备份/恢复。
点击时间安排标签页。
选择备份时间表对应的更多操作,然后点击更新。
您可以更新备份时间表的频率和保留时间。如果是完整备份时间表,您还可以更新加密类型。
点击保存。
在使用下面的命令数据之前,请先进行以下替换:
SCHEDULE_ID :备份时间表 ID。PROJECT_ID :项目 ID。-
INSTANCE_ID :您要修改备份时间表的实例的 ID。 -
DATABASE_ID :您要修改备份时间表的数据库的 ID。 -
RETENTION_DURATION :按时间表创建的备份的保留时长。 -
CRONTAB_EXPRESSION :备份时间表频率的 Crontab 表达式。例如,如果您希望备份时间安排频率为每 12 小时一次,则可以使用0 12 * * *
。 -
ENCRYPTION_TYPE :由备份时间表创建的备份的加密类型。 有效值为USE_DATABASE_ENCRYPTION
、GOOGLE_DEFAULT_ENCRYPTION
或CUSTOMER_MANAGED_ENCRYPTION
。 如果您使用CUSTOMER_MANAGED_ENCRYPTION
,则必须指定kmsKeyName
。 如果您的备份类型为incremental-backup
,则加密类型必须为GOOGLE_DEFAULT_ENCRYPTION
。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud spanner backup-schedules updateSCHEDULE_ID \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID \ --retention-duration=RETENTION_DURATION \ --cron="CRONTAB_EXPRESSION " \ --encryption-type=ENCRYPTION_TYPE
Windows (PowerShell)
gcloud spanner backup-schedules updateSCHEDULE_ID ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID ` --retention-duration=RETENTION_DURATION ` --cron="CRONTAB_EXPRESSION " ` --encryption-type=ENCRYPTION_TYPE
Windows (cmd.exe)
gcloud spanner backup-schedules updateSCHEDULE_ID ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID ^ --retention-duration=RETENTION_DURATION ^ --cron="CRONTAB_EXPRESSION " ^ --encryption-type=ENCRYPTION_TYPE
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID :项目 ID。-
INSTANCE_ID :您要修改备份时间表的实例的 ID。 -
DATABASE_ID :您要修改备份时间表的数据库的 ID。 SCHEDULE_ID :备份时间表 ID。-
RETENTION_DURATION :由时间表创建的备份的保留时长。例如,如果您希望保留时长为 1 天,请指定86400s
。 -
ENCRYPTION_TYPE :由备份时间表创建的备份的加密类型。 可能的值为USE_DATABASE_ENCRYPTION
、GOOGLE_DEFAULT_ENCRYPTION
或CUSTOMER_MANAGED_ENCRYPTION
。 如果您使用CUSTOMER_MANAGED_ENCRYPTION
,则必须指定kmsKeyName
。 如果您的备份类型为incremental-backup
,则加密类型必须为GOOGLE_DEFAULT_ENCRYPTION
。
HTTP 方法和网址:
PATCH https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID ?updateMask=retention_duration,encryption_config,spec.cron_spec.text
请求 JSON 正文:
{ "retentionDuration": "RETENTION_DURATION ", "spec": { "cronSpec": { "text": "0 2 * * *" } "encryptionConfig": { "encryptionType": "ENCRYPTION_TYPE " }, }, }
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID ?updateMask=retention_duration,encryption_config,spec.cron_spec.text"
PowerShell (Windows)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID ?updateMask=retention_duration,encryption_config,spec.cron_spec.text" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID ", "retentionDuration": "86400s", "encryptionConfig": { "encryptionType": "USE_DATABASE_ENCRYPTION" }, "spec": { "cronSpec": { "text": "0 2 * * *", "timeZone": "UTC", "creationWindow": "14400s" } }, "fullBackupSpec": {}, "updateTime": "2024-05-22T11:13:51.835590Z" }
删除备份时间表
在 Google Cloud 控制台中,前往 Spanner 实例页面。
点击包含数据库的实例。
点击相应数据库。
在导航菜单中,点击备份/恢复。
针对备份时间表选择更多操作,然后点击删除。
输入备份时间表名称。
点击确认。
在使用下面的命令数据之前,请先进行以下替换:
SCHEDULE_ID :备份时间表 ID。PROJECT_ID :项目 ID。-
INSTANCE_ID :您要删除备份时间表的实例的 ID。 -
DATABASE_ID :您要删除备份时间表所在的数据库的 ID。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud spanner backup-schedules deleteSCHEDULE_ID \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID
Windows (PowerShell)
gcloud spanner backup-schedules deleteSCHEDULE_ID ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID
Windows (cmd.exe)
gcloud spanner backup-schedules deleteSCHEDULE_ID ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID :项目 ID。-
INSTANCE_ID :您要删除备份时间表的实例的 ID。 -
DATABASE_ID :您要删除备份时间表所在的数据库的 ID。 -
SCHEDULE_ID :备份时间表 ID。
HTTP 方法和网址:
DELETE https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
执行以下命令:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID "
PowerShell (Windows)
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID " | Select-Object -Expand Content
您应该会收到一个成功的状态代码 (2xx) 和一个空响应。
设置 IAM 访问权限控制政策
您可以设置 IAM 访问权限政策,以指定哪些用户有权访问备份时间表。
在使用下面的命令数据之前,请先进行以下替换:
SCHEDULE_ID :备份时间表 ID。PROJECT_ID :项目 ID。INSTANCE_ID :实例 ID。DATABASE_ID :数据库 ID。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud spanner backup-schedules set-iam-policySCHEDULE_ID \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID \ policy.json
Windows (PowerShell)
gcloud spanner backup-schedules set-iam-policySCHEDULE_ID ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID ` policy.json
Windows (cmd.exe)
gcloud spanner backup-schedules set-iam-policySCHEDULE_ID ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID ^ policy.json
您应该会收到类似如下所示的响应:
Updated IAM policy for backupSchedule [SCHEDULE_ID ]. bindings: - members: - user:test@google.com role: roles/editor etag: BwYi82k-fho= version: 1
policy.json
文件:
{ "version": 1, "etag": "BwYi8ypICC0=", "bindings": [ { "role": "roles/editor", "members": [ "user:test@gmail.com" ] } ] }
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID :项目 ID。INSTANCE_ID :实例 ID。DATABASE_ID :数据库 ID。SCHEDULE_ID :备份时间表 ID。
HTTP 方法和网址:
POST https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID :setIamPolicy?alt=json
请求 JSON 正文:
{ "policy": { "version": 1, "etag": "BwYi8ypICC0=", "bindings": [ { "role": "roles/editor", "members": [ "user:test@gmail.com" ] } ] } }
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID :setIamPolicy?alt=json"
PowerShell (Windows)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID :setIamPolicy?alt=json" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ { "version": 1, "etag": "etag", "bindings": [ { "role": "roles/non-primitive", "members": [ "user:test@gmail.com" ] } ] } }
获取 IAM 访问权限控制政策
在使用下面的命令数据之前,请先进行以下替换:
SCHEDULE_ID :备份时间表 ID。PROJECT_ID :项目 ID。INSTANCE_ID :实例 ID。DATABASE_ID :数据库 ID。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud spanner backup-schedules get-iam-policySCHEDULE_ID \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID
Windows (PowerShell)
gcloud spanner backup-schedules get-iam-policySCHEDULE_ID ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID
Windows (cmd.exe)
gcloud spanner backup-schedules get-iam-policySCHEDULE_ID ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID
您应该会收到类似如下所示的响应:
bindings: - members: - user:test@gmail.com role: roles/editor etag: BwYi82k-fho= version: 1
在使用任何请求数据之前,请先进行以下替换:
INSTANCE_ID :实例 ID。DATABASE_ID :数据库 ID。SCHEDULE_ID :备份时间表 ID。PROJECT_ID :项目 ID。
HTTP 方法和网址:
POST https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID :getIamPolicy?alt=json
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID :getIamPolicy?alt=json"
PowerShell (Windows)
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID :getIamPolicy?alt=json" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ { "version": 1, "etag": "BwYbyZ9pc4o=", "bindings": [ { "role": "roles/editor", "members": [ "user:test@gmail.com" ] } ] } }