Oracle默认系统用户(账户)sys和system解疑

sys:这个账户相当于SqlServer中的sa账户,是个超级账户,拥有的权限最大,可以完成数据库所有管理任务。

system:没有sys的权限大,通常用来创建一些用于查看管理信息的表或试图,同样也不建议使用system架构来创建一些与管理无关的表或视图。

sys能选择sysdba登录或sysoper登录,不能选择normal

system默认使用normal

normal sysdba sysoper有什么区别

normal 是普通用户 ,就是一个普通的dba用户。

sysdba拥有最高的系统权限,登陆后用户是sys

sysoper主要用来启动、关闭数据库,sysoper 登陆后用户是public

SYS用户是Oracle中权限最高的用户,而SYSTEM是一个用于数据库管理的用户。在数据库安装完之后,应立即修改SYS,SYSTEM这两个用户的口令,以保证数据库的安全

sysdbasysoper具体的权限可以看下表:

有一点需要特别注意SYS账户的认证分为操作系统认证和Oracle认证,两者的差别:

1Oracle认证,需要用户名和密码验证(输入正确的用户名和密码),也称为口令文件认证:Oracle认为操作系统用户是不可靠的,如果要访问数据库,必须再次使用密码认证。

2操作系统认证 (不输入用户和密码,或者随便输入)。也称为主机验证:使用操作系统认证(sysdba方式认证)登录时,无论用户是否存在和密码的对错,利用Oracle 的客户端工具SQL Plus,均可以登录到数据库。要改变此种状况可改变认证方式——将操作系统认证改为为oracle认证。

操作系统认证改为为oracle认证

修改SQLNET.ORA文件,在SQLNET.AUTENTICATION_SERVICES=(NTS)前加#号注释掉,即#SQLNET.AUTENTICATION_SERVICES=(NTS)

SQLNET.ORA文件所在目录为:

SQLNET.ORA文件可用记事本打开编辑

下面利用利用Oracle 的客户端工具SQL Plus,验证SQLNET.ORA文件中SQLNET.AUTENTICATION_SERVICES=(NTS)作用

Oracle 的客户端工具SQL Plus有启动两种方式

★打开命令提示符窗口

在命令提示符窗口中执行sqlplus命令

★使用开始菜单的

下面采用的是后者】

先看将SQLNET.AUTENTICATION_SERVICES=(NTS)前加#号注释掉之前

这种情况下,名字和口令不严格,也可以登录。

再看将SQLNET.AUTENTICATION_SERVICES=(NTS)前加#号注释掉之后

这种情况下,名字和口令必须是合法的,才能登录。

参考

关于Oracle数据库sys用户登入的解惑 http://t.zoukankan.com/jmuccx-p-9955969.html

sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别  https://blog.51cto.com/meiling/2399742

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐