

# RDS for Oracle 用户和权限
<a name="Oracle.Concepts.Privileges"></a>

当您创建 Amazon RDS for Oracle 数据库实例时，原定设置主用户拥有该数据库实例的大部分最大用户权限。使用主用户账户执行任何管理任务，例如，在数据库中创建其他用户账户。由于 RDS 是一项托管式服务，不允许您以 `SYS` 和 `SYSTEM` 身份登录，因此您没有 `SYSDBA` 权限。

**Topics**
+ [Oracle DBA 权限的限制](#Oracle.Concepts.dba-limitations)
+ [如何管理对于 SYS 对象的权限](#Oracle.Concepts.Privileges.SYS-objects)

## Oracle DBA 权限的限制
<a name="Oracle.Concepts.dba-limitations"></a>

在数据库中，角色是可授予用户或从用户撤消的特权的集合。Oracle 数据库使用角色来提供安全性。有关更多信息，请参阅 Oracle 数据库文档中的[配置权限和角色授权](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/configuring-privilege-and-role-authorization.html#GUID-89CE989D-C97F-4CFD-941F-18203090A1AC)。

预定义角色 `DBA` 通常拥有对 Oracle 数据库的所有管理权限。创建数据库实例时，您的主用户账户将获得 DBA 权限（但有一些限制）。为了提供托管体验，RDS for Oracle 数据库不为 `DBA` 角色提供以下权限：
+ `ALTER DATABASE`
+ `ALTER SYSTEM`
+ `CREATE ANY DIRECTORY`
+ `DROP ANY DIRECTORY`
+ `GRANT ANY PRIVILEGE`
+ `GRANT ANY ROLE`

有关 RDS for Oracle 系统权限和角色的更多信息，请参阅[主用户账户权限](UsingWithRDS.MasterAccounts.md)。

## 如何管理对于 SYS 对象的权限
<a name="Oracle.Concepts.Privileges.SYS-objects"></a>

您可以使用 `rdsadmin.rdsadmin_util` 包来管理对 `SYS` 对象的权限。例如，如果您创建数据库用户 `myuser`，您可以使用 `rdsadmin.rdsadmin_util.grant_sys_object` 过程向 `myuser` 授予对 `V_$SQLAREA` 的 `SELECT` 权限。有关更多信息，请参阅以下主题：
+ [向 SYS 对象授予 SELECT 或 EXECUTE 权限](Appendix.Oracle.CommonDBATasks.TransferPrivileges.md)
+ [撤销 SYS 对象的 SELECT 或 EXECUTE 权限](Appendix.Oracle.CommonDBATasks.RevokePrivileges.md)
+ [向非主用户授予权限](Appendix.Oracle.CommonDBATasks.PermissionsNonMasters.md)