sys用户可以用任何密码登陆的问题
一直在winxp上使用Oracle,一个偶然的机会发现sys竟然可以使用任何密码以sysdba角色登陆。
这个问题涉及到oracle的安全认证方式:
1.操作系统
2.口令文件
3.数据字典
由于在xp安装oracle后,sysdba默认使用操作系统认证方式,在winxp上安装oracle之后,xp默认建了一个用户组ora_dba,
描述是:Members can connect to the Oracle database as a DBA without a password。
也就是说这个组的成员以sysdba的角色登陆,压根就不需要密码。
例如:sqlplus sys/随便一些字符@net_service_name as sysdba就可以。
如果不希望操作系统认证的话可以使用如下方法之一:
1.把里面的用户(当前使用的os用户)删除,sys就必须使用正确的密码登陆了。
2.修改sqlnet.ora文件设置,把sqlNET.AUTHENTICATION_SERVICES= (NTS) 改为 sqlNET.AUTHENTICATION_SERVICES= (NONE)
需要深入了解oracle的安全认证方式。