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


sqlplus sys as sysdba
sqlplus system/manager

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

这两个模式用于哪些任务?我什么时候应该使用其中一个?

#1 楼

SYS


安装Oracle数据库时自动创建
自动授予DBA角色
具有默认密码:CHANGE_ON_INSTALL(确保更改)

拥有数据库数据字典的基本表和视图
作为SYSDBA连接时的默认模式


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

SYSTEM


安装Oracle数据库时自动创建
自动授予DBA角色
具有默认密码:MANAGER(请确保已更改)

用于创建其他表和视图以显示管理信息
用于创建内部表和视图以供管理员使用各种Oracle数据库选项和工具

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

/ via

评论


在实践中,每个DBA都会执行sqlplus / as sysdba来进行日常工作-在15年的时间里,与数十位经验丰富的DBA一起工作,我从来没有遇到任何困扰SYSTEM帐户的人。

– Gaius
2012年6月6日9:53



#2 楼

从11g Oracle文档中:

SYS AND 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。

#3 楼

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

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

#4 楼

听起来好像发帖人说只有两种连接方法:

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

sqlplus sys as sysdba
sqlplus system/manager"


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

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

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

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