Oracle SYS和SYSTEM内置帐户之间有什么区别?
tf7tbtn21#
SYS拥有Oracle数据字典。数据库中的每个对象(表、视图、包、过程等))都有一个单一的所有者。对于数据库字典,以及大量的特殊表(性能视图等)都归SYS用户所有。SYSTEM用户应该是主DBA用户,可以访问所有这些对象。这反映了早期和长期的Oracle安全设计理念。使用一个用户构建应用程序,然后创建第二个具有访问权限(选择、更新、删除)但不具有删除权限的用户。这将为您提供对模式的“超级用户”访问权限,而不会意外地破坏它。多年来,一些可能需要在SYS帐户中的东西被添加到SYSTEM帐户中。但很少有人愿意在没有必要的情况下给予对SYS帐户的访问权限。
8yparm6h2#
SYS可以connect AS SYSDBA,SYSTEM不能。SYSDBA权限需要执行某些管理任务,如CREATE DATABASE和DROP DATABASE,并查询任何表,尽管对它们有GRANT权限。事实上,只要您以SYSDBA身份连接,您就成为了SYS。
SYS
connect AS SYSDBA
SYSTEM
SYSDBA
CREATE DATABASE
DROP DATABASE
GRANT
2条答案
按热度按时间tf7tbtn21#
SYS拥有Oracle数据字典。数据库中的每个对象(表、视图、包、过程等))都有一个单一的所有者。对于数据库字典,以及大量的特殊表(性能视图等)都归SYS用户所有。
SYSTEM用户应该是主DBA用户,可以访问所有这些对象。这反映了早期和长期的Oracle安全设计理念。使用一个用户构建应用程序,然后创建第二个具有访问权限(选择、更新、删除)但不具有删除权限的用户。这将为您提供对模式的“超级用户”访问权限,而不会意外地破坏它。多年来,一些可能需要在SYS帐户中的东西被添加到SYSTEM帐户中。但很少有人愿意在没有必要的情况下给予对SYS帐户的访问权限。
8yparm6h2#
SYS
可以connect AS SYSDBA
,SYSTEM
不能。SYSDBA
权限需要执行某些管理任务,如CREATE DATABASE
和DROP DATABASE
,并查询任何表,尽管对它们有GRANT
权限。事实上,只要您以
SYSDBA
身份连接,您就成为了SYS
。