sys和Oracle数据库中的系统帐户之间有什么区别?


39

有两种方法可以使用sqlplus以管理员身份连接到Oracle:

  1. sqlplus sys as sysdba
  2. sqlplus system/manager

我想这些帐户应用于不同目的。

这两种模式意味着什么任务?我什么时候应该使用其中一个?

Answers:


43

SYS

  • 在安装Oracle数据库时自动创建
  • 自动授予DBA角色
  • 具有默认密码:(确保您更改了密码CHANGE_ON_INSTALL
  • 拥有数据库数据字典的基本表和视图
  • 当您连接为时的默认架构 SYSDBA

SYS模式中的表仅由数据库操作。绝对不要由任何用户或数据库管理员来修改它们,并且任何人都不应在user架构中创建任何表SYS。数据库用户不应使用该SYS帐户连接到Oracle数据库。

SYSTEM

  • 在安装Oracle数据库时自动创建
  • 自动授予DBA角色
  • 具有默认密码:(确保您更改了密码MANAGER
  • 用于创建显示管理信息的其他表和视图
  • 用于创建各种Oracle数据库选项和工具使用的内部表和视图

切勿使用该SYSTEM模式存储非管理用户感兴趣的表。

/通过


19
实际上,每个DBA都会做sqlplus / as sysdba日常工作-在15年的时间里,与数十名经验丰富的DBA一起工作,我从来没有遇到任何困扰该SYSTEM帐户的人。
盖乌斯2012年

21

11g Oracle文档中

SYS和SYSTEM用户

安装Oracle数据库时,将自动创建以下管理用户帐户。它们都使用安装时提供的密码创建,并且都自动被授予DBA角色。

  • SYS

    该帐户可以执行所有管理功能。数据库数据字典的所有基本(基础)表和视图都存储在SYS模式中。这些基本表和视图对于Oracle数据库的操作至关重要。为了维护数据字典的完整性,SYS模式中的表仅由数据库处理。绝不能由任何用户或数据库管理员修改它们。您不得在SYS模式中创建任何表。

    SYS用户被授予SYSDBA特权,该特权使用户能够执行高级管理任务,例如备份和恢复。

  • SYSTEM

    该帐户可以执行除以下各项以外的所有管理功能:

    • 备份与还原

    • 数据库升级

    尽管可以使用此帐户执行日常管理任务,但是Oracle强烈建议创建用于管理Oracle数据库的命名用户帐户,以启用对数据库活动的监视。

SYSDBA和SYSOPER系统特权

SYSDBA和SYSOPER是执行高级管理操作(如创建,启动,关闭,备份或恢复数据库)所需的管理特权。SYSDBA系统特权适用于完全授权的数据库管理员,而SYSOPER系统特权则允许用户执行基本的操作任务,但无法查看用户数据。

SYSDBA和SYSOPER系统特权允许访问数据库实例,即使数据库未打开也是如此。因此,这些特权的控制完全在数据库本身之外。通过此控件,被授予这些特权之一的管理员可以连接到数据库实例以启动数据库。

您还可以将SYSDBA和SYSOPER特权视为连接的类型,这些连接使您能够执行某些无法以其他任何方式授予特权的数据库操作。例如,如果您具有SYSDBA特权,则可以使用AS SYSDBA连接到数据库。

安装后,会自动为SYS用户授予SYSDBA特权。以SYS用户身份登录时,必须以SYSDBA或SYSOPER身份连接到数据库。以SYSDBA用户身份进行连接会调用SYSDBA特权;以SYSOPER身份进行连接将调用SYSOPER特权。Oracle Enterprise Manager Database Control不允许您以SYS用户身份登录而不以SYSDBA或SYSOPER身份连接。

使用SYSDBA或SYSOPER特权进行连接时,将使用默认模式进行连接,而不是使用通常与用户名关联的模式进行连接。对于SYSDBA,此架构为SYS;对于SYSDBA,此架构为SYS。对于SYSOPER,架构为PUBLIC。


8

SYS(或任何其他SYSDBA连接)与每个其他用户之间的主要区别的示例:SYS无法进行一致读取。这种暗示(还有其他一种暗示)是,您无法使用旧的exp实用程序将CONSISTENT = Y导出为SYS。

Oracle员工兼专家Tom Kyte认为您很少应该使用任何一个。关于SYS,他指出它的工作方式与上面的示例所示不同,但更一般地说,他认为它们是Oracle Corporation的“所有者”。如果您进行更改或在任一模式中添加某些内容而发生问题(例如,数据库升级失败),我怀疑Oracle Support的答案将是:“您不应该这样做。”


0

这听起来好像张贴者在说只有两种连接方法:

“有两种方法可以使用sqlplus以管理员身份连接到Oracle:

sqlplus sys as sysdba
sqlplus system/manager"

管理员帐户是具有SYSDBA特权或DBA角色的任何Oracle用户帐户。SYS是SYSDBA的预定义用户,SYSTEM是DBA的预定义用户。如果数据库中有n个管理员帐户,那么就有n个可以(根据定义)以管理员权限进行连接的用户-不仅只有两个。

另一点涉及SQL * Plus。您可以在操作系统提示符下使用操作系统身份验证以SYS身份连接:sqlplus / as sysdba。您也可以启动SQL * Plus,然后启动CONNECT / AS SYSDBA。您可以在OS提示符下的CONNECT语句中指定密码,或让SQL * Plus提示您输入密码。您可以使用网络服务名称。您可以(并且应该)更改系统密码。等等。

我认为,发帖人的意思是,一个Oracle数据库中至少有两个管理员帐户,如果SYSTEM具有默认密码,并且如果设置了OS身份验证,则这是两个(很多)示例。 SYS和SYSTEM如何使用SQL * Plus登录数据库。

SYS和SYSTEM之间的差异问题不同,并且已得到解答。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.