Oracle SYS 和 SYSTEM 帐户有啥区别?
Posted
技术标签:
【中文标题】Oracle SYS 和 SYSTEM 帐户有啥区别?【英文标题】:What's the difference between the Oracle SYS and SYSTEM accounts?Oracle SYS 和 SYSTEM 帐户有什么区别? 【发布时间】:2010-10-29 06:54:18 【问题描述】:Oracle SYS 和 SYSTEM 内置帐户有什么区别?
编辑:除了 3 个字母!
【问题讨论】:
【参考方案1】:SYS 拥有 oracle 数据字典。数据库中的每个对象(表、视图、包、过程等)都有一个所有者。对于数据库字典,以及一大堆特殊的表(性能视图等)都归SYS用户所有。
SYSTEM 用户应该是主 DBA 用户,可以访问所有这些对象。这反映了早期且长期的 Oracle 安全设计理念。您使用一个用户构建应用程序,然后创建具有访问权限(选择、更新、删除)但没有删除权限的第二个用户。这使您可以“超级用户”访问您的架构,而不会意外地破坏它。多年来,系统帐户中添加了可能需要在 SYS 帐户中的东西。但是,如果没有必要,很少有人愿意授予他们 SYS 帐户的访问权限。
【讨论】:
【参考方案2】:SYS
可以connect AS SYSDBA
,SYSTEM
不能。
需要SYSDBA
权限才能执行某些管理任务,例如CREATE DATABASE
和DROP DATABASE
,并查询任何表,尽管他们拥有GRANT
的权限。
事实上,每当您以SYSDBA
连接时,您就会成为SYS
。
【讨论】:
我刚刚连接到 SYSTEM "as sysdba" 下的默认 XE。令我困惑的是,我没有将 pw 设置为 SYSTEM 帐户,我可以将它与我为 SYS 设置的 pw 一起使用。 (我对 Oracle 知之甚少。)以上是关于Oracle SYS 和 SYSTEM 帐户有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
Java 中 给一个object 赋值属性, 既可以用构造函数的方式,也可以用setXXXX()的方式,而它们之间有啥区
在 sql server 中,sys.types 中的 user_type_id 和 system_type_id 有啥区别