基本数据库服务的策略详细信息

本文详细介绍了如何编写 Oracle Cloud Infrastructure Identity and Access Management (IAM) 策略来控制对 Oracle Base Database Service 资源的访问。

提示:

有关策略示例,请参阅让数据库管理员管理 Oracle Cloud 数据库系统

资源类型

聚合资源类型涵盖直接遵循的各个资源类型的列表。例如,编写一个允许组访问 database-family 的策略等效于为将授予对 db-systemsdb-nodesdb-homesdatabasesdatabase-software-imagedb-backups 资源类型的访问权限的组编写单独的策略。有关更多信息,请参见 How Policies Work 中的 Resource-Types

聚合资源类型

  • database-family

单个资源类型

  • db-systems
  • db-nodes
  • db-homes
  • databases
  • pluggable databases
  • db-backups

支持的变量

仅支持常规变量。有关更多信息,请参见 Policy Reference 中的 General Variables for All Requests

有关动词 + 资源类型组合的详细信息

下表显示了每个动词涵盖的权限和 API 操作。从 inspect > read > use > manage 进行访问时,访问级别是累加的。表单元格中的加号 (+) 表示与它正上方的单元格相比的增量访问,而“无额外”表示没有增量访问。

例如,db-systems 资源类型的 readuse 动词不包含与 inspect 动词相比的额外权限或 API 操作。但是,manage 动词包含另外两个权限,部分涵盖另外两个 API 操作。

db-systems

命令动词 权限 API 全面覆盖 API 已部分覆盖
检查 DB_SYSTEM_INSPECT

ListDbSystems

GetDbSystem

ListDbSystemPatches

ListDbSystemPatchHistoryEntries

GetDbSystemPatch

GetDbSystemPatchHistoryEntry

读取 不额外 不额外
use - 使用 DB_SYSTEM_UPDATE 不额外 ChangeDbSystemCompartment(还需要 use db-homesuse databasesinspect db-backups
管理

USE +

DB_SYSTEM_CREATE

DB_SYSTEM_DELETE

UpdateDBSystem LaunchDBSystemTerminateDbSystem(两者还需要 manage db-homesmanage databasesuse vnicsuse subnets

db-nodes

命令动词 权限 API 全面覆盖 API 已部分覆盖
检查

DB_NODE_INSPECT

DB_NODE_QUERY

GetDbNode
读取 不额外 不额外
use - 使用 不额外 不额外
管理

USE +

DB_NODE_POWER_ACTIONS

DbNodeAction

db-homes

命令动词 权限 API 全面覆盖 API 已部分覆盖
检查 DB_HOME_INSPECT

ListDBHome

GetDBHome

ListDbHomePatches

ListDbHomePatchHistoryEntries

GetDbHomePatch

GetDbHomePatchHistoryEntry

读取 不额外 不额外
use - 使用 DB_HOME_UPDATE UpdateDBHome ChangeDbSystemCompartment(还需要 use db-systemsuse databasesinspect db-backups
管理

USE +

DB_HOME_CREATE

DB_HOME_DELETE

不额外

LaunchDBSystemTerminateDbSystem(两者还需要 manage db-systemsmanage databasesuse vnicsuse subnets)。

如果在默认数据库上启用了自动备份,则还需要 manage db-backups

CreateDbHome(还需要 use db-systemsmanage databases)。

如果通过从备份还原来创建数据库主目录,则还需要 read db-backups

DeleteDbHome(还需要 use db-systemsmanage databases)。

如果在默认数据库上启用了自动备份,则还需要 manage db-backups

如果选择了 performFinalBackup 选项,则还需要 manage db-backupsread databases

数据库

命令动词 权限 API 全面覆盖 API 已部分覆盖
检查 DATABASE_INSPECT

ListDatabases

GetDatabase

ListDataGuardAssociations

GetDataGuardAssociation

读取

不额外

DATABASE_CONTENT_READ

不额外
use - 使用

读取 +

DATABASE_CONTENT_WRITE

DATABASE_UPDATE

UpdateDatabase

SwitchoverDataGuardAssociation

FailoverDataGuardAssociation

ReinstateDataGuardAssociation

RotateVaultKey

MigrateVaultKey

CreateDataGuardAssociation

ChangeDbSystemCompartment(还需要 use db-systemsuse db-homesinspect db-backups

管理

USE +

DATABASE_CREATE

DATABASE_DELETE

不额外 LaunchDBSystemTerminateDbSystem(两者还需要 manage db-systemsmanage db-homesuse vnicsuse subnets

可插入数据库

命令动词 权限 API 全面覆盖 API 已部分覆盖
检查 PLUGGABLE_DATABASE_INSPECT

ListPluggableDatabases

GetPluggableDatabase

读取

检查 +

PLUGGABLE_DATABASE_CONTENT_READ

不额外
use - 使用

读取 +

PLUGGABLE_DATABASE_CONTENT_WRITE

PLUGGABLE_DATABASE_UPDATE

UpdatePluggableDatabases

StartPluggableDatabase

StopPluggableDatabase

管理

USE +

PLUGGABLE_DATABASE_CREATE

PLUGGABLE_DATABASE_DELETE

不额外 CreatePluggableDatabaseDeletePluggableDatabaseLocalClonePluggableDatabaseRemoteClonePluggableDatabase(还需要 use databases

数据库备份

命令动词 权限 API 全面覆盖 API 已部分覆盖
检查 DB_BACKUP_INSPECT

GetBackup

ListBackups

ChangeDbSystemCompartment(还需要 use db-systemsuse db-homesuse databases
读取

检查 +

DB_BACKUP_CONTENT_READ

RestoreDatabase(也需要 use databases
use - 使用 不额外 不额外
管理

USE +

DB_BACKUP_CREATE

DB_BACKUP_DELETE

DeleteBackup CreateBackup(也需要 read databases
有关权限和动词的更多信息,请参见 Advanced Policy Features

每个 API 操作所需的权限

下表按逻辑顺序列出了数据库系统和可插入数据库的 API 操作,并按资源类型分组。

数据库 API 操作

API 操作 使用操作所需的权限
ListDbSystems DB_SYSTEM_INSPECT
GetDbSystem DB_SYSTEM_INSPECT
LaunchDbSystem

DB_SYSTEM_CREATE 和 DB_HOME_CREATE 和 DATABASE_CREATE 以及 VNIC_CREATE 和 VNIC_ATTACH 和 SUBNET_ATTACH

要为初始数据库启用自动备份,还需要 DB_BACKUP_CREATE 和 DATABASE_CONTENT_READ

UpdateDbSystem DB_SYSTEM_INSPECT 和 DB_SYSTEM_UPDATE
ChangeDbSystemCompartment DB_SYSTEM_UPDATE 和 DB_HOME_UPDATE 以及 DATABASE_UPDATE 和 DB_BACKUP_INSPECT
ListDbSystemPatches DB_SYSTEM_INSPECT
ListDbSystemPatchHistoryEntries DB_SYSTEM_INSPECT
GetDbSystemPatch DB_SYSTEM_INSPECT
GetDbSystemPatchHistoryEntry DB_SYSTEM_INSPECT
TerminateDbSystem

DB_SYSTEM_DELETE 和 DB_HOME_DELETE 和 DATABASE_DELETE 以及 VNIC_DETACH 和 VNIC_DELETE 和 SUBNET_DETACH

如果为数据库系统中的任何数据库启用自动备份,则还需要 DB_BACKUP_DELETE

GetDbNode DB_NODE_INSPECT
DbNodeAction DB_NODE_POWER_ACTIONS
ListDbHomes DB_HOME_INSPECT
GetDbHome DB_HOME_INSPECT
ListDbHomePatches DB_HOME_INSPECT
ListDbHomePatchHistoryEntries DB_HOME_INSPECT
GetDbHomePatch DB_HOME_INSPECT
GetDbHomePatchHistoryEntry DB_HOME_INSPECT
CreateDbHome

DB_SYSTEM_INSPECT 和 DB_SYSTEM_UPDATE 以及 DB_HOME_CREATE 和 DATABASE_CREATE

要为数据库启用自动备份,还需要 DB_BACKUP_CREATE 和 DATABASE_CONTENT_READ

UpdateDbHome DB_HOME_UPDATE
DeleteDbHome

DB_SYSTEM_UPDATE、DB_HOME_DELETE 和 DATABASE_DELETE

如果启用了自动备份,则还需要 DB_BACKUP_DELETE

如果在终止时执行最终备份,还需要 DB_BACKUP_CREATE 和 DATABASE_CONTENT_READ

ListDatabases DATABASE_INSPECT
GetDatabase DATABASE_INSPECT
UpdateDatabase

DATABASE_UPDATE

要启用自动备份,还需要 DB_BACKUP_CREATE 和 DATABASE_CONTENT_READ

ListDbSystemShapes (无需权限;可供任何人使用)
ListDbVersions (无需权限;可供任何人使用)
GetDataGuardAssociation DATABASE_INSPECT
ListDataGuardAssociations DATABASE_INSPECT
CreateDataGuardAssociation DB_SYSTEM_UPDATE 和 DB_HOME_CREATE 和 DB_HOME_UPDATE 以及 DATABASE_CREATE 和 DATABASE_UPDATE
SwitchoverDataGuardAssociation DATABASE_UPDATE
FailoverDataGuardAssociation DATABASE_UPDATE
ReinstateDataGuardAssociation DATABASE_UPDATE
MigrateVaultKey DATABASE_UPDATE
RotateVaultKey DATABASE_UPDATE
GetBackup DB_BACKUP_INSPECT
ListBackups DB_BACKUP_INSPECT
CreateBackup DB_BACKUP_CREATE 和 DATABASE_CONTENT_READ
DeleteBackup DB_BACKUP_DELETE 和 DB_BACKUP_INSPECT
RestoreDatabase DB_BACKUP_INSPECT、DB_BACKUP_CONTENT_READ 和 DATABASE_CONTENT_WRITE

可插入数据库 API 操作数

API 操作 使用操作所需的权限
ListPluggableDatabase PLUGGABLE_DATABASE_INSPECT
GetPluggableDatabase PLUGGABLE_DATABASE_INSPECT
CreatePluggableDatabase

DATABASE_INSPECT*

DATABASE_UPDATE*

PLUGGABLE_DATABASE_CREATE

如果在 CDB 上启用了自动备份并包括此 PDB,则需要其他权限:

PLUGGABLE_DATABASE_CONTENT_READ

UpdatePluggableDatabase

PLUGGABLE_DATABASE_INSPECT 和

PLUGGABLE_DATABASE_UPDATE

如果在 CDB 上启用了自动备份并包括此 PDB,则需要其他权限:

PLUGGABLE_DATABASE_CONTENT_READ

StartPluggableDatabase

PLUGGABLE_DATABASE_INSPECT 和

PLUGGABLE_DATABASE_UPDATE

StopPluggableDatabase

PLUGGABLE_DATABASE_INSPECT 和

PLUGGABLE_DATABASE_UPDATE

DeletePluggableDatabase

DATABASE_INSPECT(存在)

DATABASE_UPDATE(存在)

PLUGGABLE_DATABASE_DELETE

LocalClonePluggableDatabase

DATABASE_INSPECT*

DATABASE_UPDATE*

PLUGGABLE_DATABASE_INSPECT

PLUGGABLE_DATABASE_UPDATE

PLUGGABLE_DATABASE_CONTENT_READ

PLUGGABLE_DATABASE_CREATE

PLUGGABLE_DATABASE_CONTENT_WRITE

RemoteClonePluggableDatabase

DATABASE_INSPECT*

DATABASE_UPDATE*

PLUGGABLE_DATABASE_INSPECT

PLUGGABLE_DATABASE_UPDATE

PLUGGABLE_DATABASE_CONTENT_READ

PLUGGABLE_DATABASE_CREATE

PLUGGABLE_DATABASE_CONTENT_WRITE

有关权限和动词的更多信息,请参见 Advanced Policy Features