了解Oracle在Windows上的操作系统认证
有些同学对在Windows上登陆sqlplus或plsqldeveloper时输入错误的账号/密码都能成功登陆到sysdba感到奇怪。
这实际上是很多初学Oracle的初学者都很容易遇到的问题,造成这个问题的原因很简单,就是Oracle有操作系统认证的特点。
当在Windows上安装oracle后会默认启动操作系统认证,这种认证主要是针对数据库管理员的,也就是sysdba角色。启用了操作系统认证后只要是属于合适的操作系统用户组下的用户,均可以不输入密码即登陆到sysdba。
操作系统认证的理念在于,当OS操作系统不安全时oracle数据库也并不能保证安全,所以依赖于OS的安全并不会有问题。
对应在Windows上的用户组名称为”ORA_DBA”(SYSDBA)和”ORA_OPER”(SYSOPER)。
以下几点对于Windows上的操作系统认证是重要的:
1、 对应的sqlnet.ora中有如下的记录:
SQLNET.AUTHENTICATION_SERVICES = (NTS)
2、使用的用户 可能属于这几个用户组: ORA_OPER、ORA_DBA、ORA_sid_OPER、ORA_sid_DBA
ORA_DBA代表对所有本机上的实例都可以以sysdba身份登录
ORA_OPER代表对所有本机上的实例都可以以sysoper身份登录
ORA_sid_OPER和ORA_sid_DBA 即只对变量$SID对应的实例生效
3、 有对应的注册表记录
所以初学的同学没必要惊讶于为什么输入错误密码也能以SYSDBA登录,一切的这些问题必要都有原因和解释,只要愿意用google搜索下那么大多数浅显的问题都能得到解释。如果一路惊讶而连google都不会了,那么才真变菜鸟了。
扩展阅读可以读下下面的文档:
视频教学 Oracle常见初学者错误ORA-1017的解决
Leave a Reply