您的位置:首页 > 数据库 > Oracle

解决Oracle中,用户作为SYSDBA可以以任何密码登录

2009-10-24 22:50 507 查看
oracle认证方式分为操作系统认证和口令文件认证2种方式,操作系统认证有时候也叫本地认证。
--操作系统认证:即oracle认为操作系统用户是可靠的,即既然能登陆到操作系统那么oracle数据库你也能登陆
--口令文件认证:oracle认证认为操作系统用户是不可信任的,如果要访问数据库,必须进行再次认证。

具体实现如下:
--操作系统认证:
配置sqlnet.ora文件中的参数:SQLNET.AUTHENTICATION_SERVICES=(NTS)
spfile(pfile)文件参数:REMOTE_LOGIN_PASSWORDFILE=('NONE')
这个时候,只要你登陆操作系统oracle用户后,就可以直接conn /as sysdba登陆数据库了。但是不能通过oracle的client去直接连接/as sysdba。如客户端SQLPLUSw或者其它客户端软件直接conn /as sysbd 。

--口令文件认证:
配置sqlnet.ora文件中的参数:SQLNET.AUTHENTICATION_SERVICES=(NONE)
spfile(pfile)文件参数:REMOTE_LOGIN_PASSWORDFILE=('EXCLUSIVE')或('SHARED')
这个时候需要配置口令文件PWDorcl.ora。(orcl为数据库SID)可以通过orapwd命令进行配置口令,具体用法man orapwd。
这种情况下,就是口令认证模式,不能使用本地用户conn /as sysdba 这个时候会报错:ORA-01031 权限不足。你必须使用conn sys/pwd@orcl as sysdba进行登陆:就是说必须提供用户名和密码才能登陆。(orcl 为SID)

系统默认是操作系统认证模式。

另解:
如果用的是Win系统的话,操作系统里面有一个ora_dba组,这个组里面
Members can connect to the Oracle database as a DBA without a password
去掉这个组里的所有成员,这样sys登陆就一定要正确的密码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐