身分與存取權管理 (IAM) 可讓您控管使用者對 Spanner Omni 資源的存取權。舉例來說,使用者可以擁有特定資料庫的完整控制權,但無法在部署作業中建立或修改其他資料庫。使用 IAM 可讓您授予使用者權限,而無需個別修改每一個 Spanner Omni 資料庫權限。
本文著重說明與 Spanner Omni 相關的 IAM 權限,以及授予這些權限的 IAM 角色。如需 IAM 和其功能的詳細說明,請參閱身分與存取權管理開發人員指南。
權限
權限的設定可幫助使用者在 Spanner Omni 資源中執行特定操作。舉例來說,spanner.databases.read 權限可讓使用者透過 Spanner Omni 的讀取 API 讀取資料庫,而 spanner.databases.export 則可讓使用者匯出 Spanner Omni 資料庫。您無法直接授予使用者權限,而是將隨附一或多個權限的預先定義角色指派給他們。
下表列出與 Spanner Omni 相關的 IAM 權限。部分權限會與 Spanner 共用,部分權限則僅供 Spanner Omni 使用。
資料庫
下列權限適用於 Spanner Omni 資料庫。
| 資料庫權限名稱 | 說明 | Spanner 和 Spanner Omni | 僅限 Spanner Omni |
|---|---|---|---|
spanner.databases.create |
建立資料庫。 | ✔ | |
spanner.databases.createBackup |
從資料庫建立備份。此外,您也需要 spanner.backups.create 才能建立備份資源。 |
✔ | |
spanner.databases.get |
取得資料庫中繼資料。 | ✔ | |
spanner.databases.getIamPolicy |
取得資料庫的 IAM 政策。 | ✔ | |
spanner.databases.list |
列出資料庫。 | ✔ | |
spanner.databases.read |
使用讀取 API 從資料庫中讀取。 | ✔ | |
spanner.databases.setIamPolicy |
設定資料庫的 IAM 政策。 | ✔ | |
spanner.databases.update |
更新資料庫中繼資料。 | ✔ | |
spanner.databases.updateDdl |
更新資料表結構定義。 | ✔ | |
spanner.databases.write |
寫入資料庫。 | ✔ | |
spanner.databases.compact |
壓縮資料庫中的資料表 | ✔ | |
spanner.databases.export |
匯出 Spanner Omni 資料庫 | ✔ | |
spanner.databases.import |
匯入 Spanner Omni 資料庫 | ✔ | |
spanner.databases.addSplitPoints |
在資料庫中新增分割點。 | ✔ |
資料庫作業
下列權限適用於 Spanner Omni 資料庫作業。
| 資料庫作業權限名稱 | 說明 | Spanner 和 Spanner Omni | 僅限 Spanner Omni |
|---|---|---|---|
spanner.databaseOperations.cancel |
取消資料庫作業。 | ✔ | |
spanner.databaseOperations.delete |
刪除資料庫作業。 | ✔ | |
spanner.databaseOperations.get |
取得特定資料庫作業。 | ✔ | |
spanner.databaseOperations.list |
列出資料庫和還原資料庫作業。 | ✔ |
備份
下列權限適用於 Spanner Omni 備份。
| 備份權限名稱 | 說明 | Spanner 和 Spanner Omni | 僅限 Spanner Omni |
|---|---|---|---|
spanner.backups.copy |
複製備份。 | ✔ | |
spanner.backups.create |
建立備份。來源資料庫也需要 spanner.databases.createBackup。 |
✔ | |
spanner.backups.createDatabaseFromBackup |
從備份建立資料庫。 | ✔ | |
spanner.backups.delete |
刪除備份。 | ✔ | |
spanner.backups.get |
取得備份。 | ✔ | |
spanner.backups.getIamPolicy |
取得備份的 IAM 政策。 | ✔ | |
spanner.backups.list |
列出備份。 | ✔ | |
spanner.backups.restoreDatabase |
從備份還原資料庫。此外,spanner.databases.create 也必須建立還原的資料庫。 |
✔ | |
spanner.backups.setIamPolicy |
設定備份的 IAM 政策。 | ✔ | |
spanner.backups.update |
更新備份。 | ✔ | |
spanner.backups.import |
從外部儲存空間匯入備份 | ✔ |
備份作業
下列權限適用於 Spanner Omni 備份作業。
| 備份作業權限名稱 | 說明 | Spanner 和 Spanner Omni | 僅限 Spanner Omni |
|---|---|---|---|
spanner.backupOperations.cancel |
取消備份作業。 | ✔ | |
spanner.backupOperations.get |
取得特定備份作業。 | ✔ | |
spanner.backupOperations.list |
列出備份作業。 | ✔ |
備份排程
下列權限適用於 Spanner Omni 備份排程。
| 備份排程權限名稱 | 說明 | Spanner 和 Spanner Omni | 僅限 Spanner Omni |
|---|---|---|---|
spanner.backupSchedules.create |
建立備份排程。來源資料庫也需要 spanner.databases.createBackup。 |
✔ | |
spanner.backupSchedules.delete |
刪除備份排程。 | ✔ | |
spanner.backupSchedules.get |
取得備份排程。 | ✔ | |
spanner.backupSchedules.list |
列出備份排程。 | ✔ | |
spanner.backupSchedules.update |
更新備份排程。 | ✔ | |
spanner.backupSchedules.getIamPolicy |
取得備份排程的 IAM 政策。 | ✔ | |
spanner.backupSchedules.setIamPolicy |
設定備份時間表的 IAM 政策。 | ✔ |
備份描述元
下列權限適用於 Spanner Omni 備份描述元。
| 備份描述符權限名稱 | 說明 | Spanner 和 Spanner Omni | 僅限 Spanner Omni |
|---|---|---|---|
spanner.backupDescriptors.import |
從備份描述元匯入備份 | ✔ | |
spanner.backupDescriptors.list |
列出備份描述元。 | ✔ |
工作階段
下列權限適用於 Spanner Omni 工作階段。
| 工作階段權限名稱 | 說明 | Spanner 和 Spanner Omni | 僅限 Spanner Omni |
|---|---|---|---|
spanner.sessions.create |
建立工作階段。 | ✔ | |
spanner.sessions.delete |
刪除工作階段。 | ✔ | |
spanner.sessions.get |
取得工作階段。 | ✔ | |
spanner.sessions.list |
列出工作階段。 | ✔ |
位置和區域
下列權限適用於 Spanner Omni 位置和區域。
| 權限名稱 | 說明 | Spanner 和 Spanner Omni | 僅限 Spanner Omni |
|---|---|---|---|
spanner.locations.create |
建立 Spanner Omni 位置 | ✔ | |
spanner.locations.delete |
刪除 Spanner Omni 位置 | ✔ | |
spanner.locations.get |
取得 Spanner Omni 位置 | ✔ | |
spanner.locations.list |
列出 Spanner Omni 位置 | ✔ | |
spanner.locationDistances.create |
建立 Spanner Omni 位置距離 | ✔ | |
spanner.locationDistances.delete |
刪除 Spanner Omni 位置距離 | ✔ | |
spanner.locationDistances.get |
取得 Spanner Omni 位置距離 | ✔ | |
spanner.locationDistances.list |
列出 Spanner Omni 位置距離 | ✔ | |
spanner.locationDistances.update |
更新 Spanner Omni 地理位置距離 | ✔ | |
spanner.zones.create |
建立 Spanner Omni 區域 | ✔ | |
spanner.zones.delete |
刪除 Spanner Omni 區域 | ✔ | |
spanner.zones.get |
取得 Spanner Omni 區域 | ✔ | |
spanner.zones.list |
列出 Spanner Omni 區域 | ✔ |
伺服器
下列權限適用於 Spanner Omni 伺服器。
| 伺服器權限名稱 | 說明 | Spanner 和 Spanner Omni | 僅限 Spanner Omni |
|---|---|---|---|
spanner.servers.create |
建立 Spanner Omni 伺服器 | ✔ | |
spanner.servers.delete |
刪除 Spanner Omni 伺服器 | ✔ | |
spanner.servers.get |
取得 Spanner Omni 伺服器 | ✔ | |
spanner.servers.list |
列出 Spanner Omni 伺服器 | ✔ |
使用者與角色
下列權限適用於 Spanner Omni 使用者和角色。
| 權限名稱 | 說明 | Spanner 和 Spanner Omni | 僅限 Spanner Omni |
|---|---|---|---|
spanner.users.create |
建立 Spanner Omni 使用者 | ✔ | |
spanner.users.delete |
刪除 Spanner Omni 使用者 | ✔ | |
spanner.users.get |
取得 Spanner Omni 使用者 | ✔ | |
spanner.users.list |
列出 Spanner Omni 使用者 | ✔ | |
spanner.users.update |
更新 Spanner Omni 使用者 | ✔ | |
spanner.roles.get |
取得 Spanner Omni 角色 | ✔ | |
spanner.roles.list |
列出 Spanner Omni 角色 | ✔ |
外部儲存空間
下列權限適用於 Spanner Omni 外部儲存空間。
| 外部儲存空間權限名稱 | 說明 | Spanner 和 Spanner Omni | 僅限 Spanner Omni |
|---|---|---|---|
spanner.externalStorages.create |
建立外部儲存空間 | ✔ | |
spanner.externalStorages.delete |
刪除外部儲存空間 | ✔ | |
spanner.externalStorages.get |
取得外部儲存空間 | ✔ | |
spanner.externalStorages.getIamPolicy |
取得外部儲存空間的 IAM 政策 | ✔ | |
spanner.externalStorages.list |
列出外部儲存空間 | ✔ | |
spanner.externalStorages.setIamPolicy |
設定外部儲存空間的 IAM 政策 | ✔ |
檔案系統和描述元
下列權限適用於 Spanner Omni 檔案系統。
| 權限名稱 | 說明 | Spanner 和 Spanner Omni | 僅限 Spanner Omni |
|---|---|---|---|
spanner.filesystem.cat |
列印 Spanner Omni 檔案系統中的檔案 | ✔ | |
spanner.filesystem.ls |
列出 Spanner Omni 檔案系統中的檔案 | ✔ | |
spanner.descriptors.print |
在 Spanner Omni 檔案系統中列印描述元 | ✔ |
其他管理員權限
其他 Spanner Omni 管理員工作適用下列權限。
| 權限名稱 | 說明 | Spanner 和 Spanner Omni | 僅限 Spanner Omni |
|---|---|---|---|
spanner.chubby.list |
列出 Chubby 儲存格 | ✔ | |
spanner.chubby.print |
列印 Chubby 儲存格內容 | ✔ | |
spanner.deployment.get |
取得 Spanner Omni 部署作業 | ✔ | |
spanner.diagnostics.create |
從 Spanner Omni 伺服器收集構件,以進行偵錯 | ✔ | |
spanner.internal-tables.sql |
對內部資料表執行 SQL 查詢 | ✔ | |
spanner.logs.copy |
從 Spanner Omni 伺服器複製記錄 | ✔ | |
spanner.tablet.move |
將子表從一個 Spanner Omni 伺服器移至另一個伺服器 | ✔ | |
spanner.workflows.delete |
刪除資料庫中的工作流程 | ✔ | |
spanner.groups.compact |
將群組中的平板電腦縮小 | ✔ | |
spanner.directories.compact |
壓縮目錄中的平板電腦 | ✔ |
預先定義的角色
預先定義的角色是由一或多個權限集合而成。Spanner Omni 支援下列預先定義角色:
| 角色 | 說明 |
|---|---|
roles/spanner.admin |
擁有所有 Spanner Omni 資源的完整存取權。包含所有權限。 |
roles/spanner.backupAdmin |
擁有 Spanner Omni 備份和備份作業的完整存取權。 |
roles/spanner.backupWriter |
可以建立備份,但無法更新或刪除備份。 |
roles/spanner.databaseAdmin |
擁有專案中所有 Spanner Omni 資料庫的完整存取權。 |
roles/spanner.databaseReader |
可從 Spanner Omni 資料庫讀取資料,並檢視結構定義。 |
roles/spanner.databaseUser |
可讀取及寫入 Spanner Omni 資料庫。 |
roles/spanner.editor |
Spanner Omni 的編輯者角色。 |
roles/spanner.restoreAdmin |
可從備份還原資料庫。 |
roles/spanner.viewer |
可查看所有 Spanner Omni 資源,但無法修改。 包括唯讀權限。 |
Spanner Omni 還有一些重要的限制:
- 沒有自訂角色。
- 沒有精細的存取控管機制。
- 沒有 IAM 條件。
後續步驟
- 進一步瞭解身分與存取權管理。
- 瞭解 Spanner Omni 中的驗證和授權。