基本数据库服务的策略详细信息
本文详细介绍了如何编写 Oracle Cloud Infrastructure Identity and Access Management (IAM) 策略来控制对 Oracle Base Database Service 资源的访问。
提示:
有关策略示例,请参阅让数据库管理员管理 Oracle Cloud 数据库系统。资源类型
聚合资源类型涵盖直接遵循的各个资源类型的列表。例如,编写一个允许组访问 database-family 的策略等效于为将授予对 db-systems、db-nodes、db-homes、databases、database-software-image 和 db-backups 资源类型的访问权限的组编写单独的策略。有关更多信息,请参见 How Policies Work 中的 Resource-Types 。
聚合资源类型
database-family
单个资源类型
db-systemsdb-nodesdb-homesdatabasespluggable databasesdb-backups
有关动词 + 资源类型组合的详细信息
下表显示了每个动词涵盖的权限和 API 操作。从 inspect > read > use > manage 进行访问时,访问级别是累加的。表单元格中的加号 (+) 表示与它正上方的单元格相比的增量访问,而“无额外”表示没有增量访问。
例如,db-systems 资源类型的 read 和 use 动词不包含与 inspect 动词相比的额外权限或 API 操作。但是,manage 动词包含另外两个权限,部分涵盖另外两个 API 操作。
db-systems
| 命令动词 | 权限 | API 全面覆盖 | API 已部分覆盖 |
|---|---|---|---|
| 检查 | DB_SYSTEM_INSPECT |
|
无 |
| 读取 | 不额外 | 不额外 | 无 |
| use - 使用 | DB_SYSTEM_UPDATE | 不额外 | ChangeDbSystemCompartment(还需要 use db-homes、use databases 和 inspect db-backups)
|
| 管理 |
USE + DB_SYSTEM_CREATE DB_SYSTEM_DELETE |
UpdateDBSystem |
LaunchDBSystem、TerminateDbSystem(两者还需要 manage db-homes、manage databases、use vnics 和 use 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 |
|
无 |
| 读取 | 不额外 | 不额外 | 无 |
| use - 使用 | DB_HOME_UPDATE | UpdateDBHome |
ChangeDbSystemCompartment(还需要 use db-systems、use databases 和 inspect db-backups)
|
| 管理 |
USE + DB_HOME_CREATE DB_HOME_DELETE |
不额外 |
如果在默认数据库上启用了自动备份,则还需要
如果通过从备份还原来创建数据库主目录,则还需要
如果在默认数据库上启用了自动备份,则还需要 如果选择了 |
数据库
| 命令动词 | 权限 | API 全面覆盖 | API 已部分覆盖 |
|---|---|---|---|
| 检查 | DATABASE_INSPECT |
|
无 |
| 读取 |
不额外 DATABASE_CONTENT_READ |
不额外 | 无 |
| use - 使用 |
读取 + DATABASE_CONTENT_WRITE DATABASE_UPDATE |
|
|
| 管理 |
USE + DATABASE_CREATE DATABASE_DELETE |
不额外 | LaunchDBSystem、TerminateDbSystem(两者还需要 manage db-systems、manage db-homes、use vnics 和 use subnets)
|
可插入数据库
| 命令动词 | 权限 | API 全面覆盖 | API 已部分覆盖 |
|---|---|---|---|
| 检查 | PLUGGABLE_DATABASE_INSPECT |
|
无 |
| 读取 |
检查 + PLUGGABLE_DATABASE_CONTENT_READ |
不额外 | 无 |
| use - 使用 |
读取 + PLUGGABLE_DATABASE_CONTENT_WRITE PLUGGABLE_DATABASE_UPDATE |
|
无 |
| 管理 |
USE + PLUGGABLE_DATABASE_CREATE PLUGGABLE_DATABASE_DELETE |
不额外 | CreatePluggableDatabase、DeletePluggableDatabase、LocalClonePluggableDatabase、RemoteClonePluggableDatabase(还需要 use databases)
|
数据库备份
| 命令动词 | 权限 | API 全面覆盖 | API 已部分覆盖 |
|---|---|---|---|
| 检查 | DB_BACKUP_INSPECT |
|
ChangeDbSystemCompartment(还需要 use db-systems、use db-homes 和 use databases)
|
| 读取 |
检查 + DB_BACKUP_CONTENT_READ |
无 | RestoreDatabase(也需要 use databases)
|
| use - 使用 | 不额外 | 不额外 | 无 |
| 管理 |
USE + DB_BACKUP_CREATE DB_BACKUP_DELETE |
DeleteBackup |
CreateBackup(也需要 read databases)
|
每个 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 |