基本数据库服务的策略详细信息
本文详细介绍了如何编写 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-systems
db-nodes
db-homes
databases
pluggable databases
db-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 |