要执行 Oracle 数据库 DBA 的管理任务,您需要在数据库中以及可能在运行数据库的服务器的操作系统中拥有特定的特权。确保严格控制对数据库管理员帐户的访问。
数据库管理员操作系统帐号
要执行数据库的许多管理任务,您必须能够执行操作系统命令。
根据运行 Oracle 数据库的操作系统,您可能需要操作系统帐户或 ID 才能访问操作系统。如果是这样,您的操作系统帐户可能需要其他数据库用户不需要的操作系统特权或访问权限(例如,执行 Oracle 数据库软件安装)。虽然您不需要将 Oracle 数据库文件存储在您的帐户中,但您应该可以访问它们。
管理用户帐户
Oracle数据库提供了几个与管理权限相关联的管理用户帐户。
关于管理用户帐户
管理用户帐户具有管理数据库区域所需的特殊权限,例如CREATE ANY TABLE或ALTER SESSION权限,或SYS模式拥有的包上的 EXECUTE 权限。
安装Oracle数据库时,会自动创建以下管理用户:
SYS
SYSTEM
SYSBACKUP
SYSDG
SYSKM
SYSRAC
Oracle 建议您至少创建一个额外的管理用户,并授予其执行日常管理任务的适当权限。请勿将 SYS 和 SYSTEM 用于这些目的。
SYS
创建 Oracle 数据库时,会自动创建用户 SYS,并拥有所有权限。
数据库数据字典的所有基表和视图都存储在模式 SYS 中。这些基本表和视图对于 Oracle 数据库的运行至关重要。为了维护数据字典的完整性,SYS 模式中的表只能由数据库操作。任何用户或数据库管理员都不应该修改它们,任何人都不应该在用户 SYS 的模式中创建任何表。(但是,如果需要,您可以更改数据字典设置的存储参数。)
确保大多数数据库用户永远无法使用 SYS 帐户连接到 Oracle 数据库。
SYSTEM
在创建 Oracle 数据库时,系统会自动创建 SYSTEM 用户,并赋予该用户 DBA 角色。
SYSTEM 用户名用于创建显示管理信息的其他表和视图,以及各种 Oracle 数据库选项和工具使用的内部表和视图。永远不要使用 SYSTEM 模式来存储非管理用户感兴趣的表。
SYSBACKUP、SYSDG、SYSKM 和 SYSRAC
在创建 Oracle 数据库时,系统会自动创建 SYSBACKUP、SYSDG、SYSKM 和 SYSRAC 用户,以实现数据库管理员的职责分离。
这些用户以下列方式分开职责:
-
SYSBACKUP
便于 Oracle Recovery Manager (RMAN)从 RMAN 或 SQL*Plus 进行备份和恢复操作。 -
SYSDG
简化了 Data Guard 操作。用户可以使用 Data Guard Broker 或 DGMGRL 命令行界面执行操作。 -
SYSKM
支持透明数据加密密钥库操作。 -
SYSRAC
通过代表 Oracle RAC 实用程序(如 SRVCTL)的 Clusterware 代理连接到数据库,从而简化了 Oracle RAC 操作。
SYSRAC 管理权限不能授予数据库用户,密码文件中不支持 SYSRAC 管理权限。SYSRAC 管理权限仅供 Oracle Clusterware 的 Oracle 代理使用操作系统身份验证连接数据库。
这些帐户中的每一个都为新的管理权限提供了一个指定用户,具有相同的名称。具体来说,SYSBACKUP 帐户为 SYSBACKUP 管理特权提供了一个指定用户。SYSDG 帐户为 SYSDG 管理权限提供指定用户。SYSKM 帐户为 SYSKM 管理权限提供指定用户。
创建一个用户,并授予该用户适当的管理权限,以便在执行日常管理任务时使用。这样做可以使您单独管理每个用户帐户,并且每个用户帐户可以有一个不同的密码。请勿将 SYSBACKUP、SYSDG 或 SYSKM 用户帐户用于上述目的。
要使用这些管理特权之一,用户必须在连接到数据库时通过指定特权来行使该特权,例如 AS SYSBACKUP、AS SYSDG 或 AS SYSKM。如果身份验证成功,则用户将连接到具有启用管理权限的会话的数据库。在这种情况下,会话用户是相应的管理用户帐户。例如,如果用户 bradmin 使用 AS SYSBACKUP 管理权限连接,那么会话用户就是 SYSBACKUP。
DBA 角色
每次安装 Oracle 数据库时都会自动创建一个预定义的 DBA 角色。此角色包含大多数数据库系统特权。因此, DBA 角色应该只授予实际的数据库管理员。