oracle操作系统认证方式
oracle操作系统认证方式
发表时间:2007/09/03
oracle操作系统认证方式
linux下只需要在sqlnet.ora文件中添加:
SQLNET.AUTHENTICATION_SERVICES = (NTS)
就禁止了操作系统认证的登陆方式。如果使用操作系统认证的话,要把nts去掉。如下:
SQLNET.AUTHENTICATION_SERVICES = (TNSNAME,HOSTNAME)
windows下需要添加如下的参数:
SQLNET.AUTHENTICATION_SERVICES = (NONE)
linux和windows上有所区别的。
1.operating system authentication 和 password file authenticate都是用来给DBA做administratation工作的选项。
2.如果Set REMOTE_LOGIN_PASSWORDFILE to NONE则只能使用OS auth,设成SHARED或者EXCLUSIVE才可以使用password file auth。
3.用connect / as sysdba|sysoper命令使用OS auth,此时登陆操作系统的用户必须属于ORA_DBA 或者ORA_OPER组(此处有疑问,我的机器上没有这两个组,照样使用OS auth,为什么?)
4.用connect internal/oracle命令使用password file authenticate,此时如果Set REMOTE_LOGIN_PASSWORDFILE to SHARED,则不允许除sys和internal之外的任何用户以SYSDBA身份登陆,但是可以有多个例程同时使用该password file。如果Set REMOTE_LOGIN_PASSWORDFILE to EXCLUSIVE,则允许除sys和internal之外的拥有SYSDBA role的用户以SYSDBA身份登陆,但是只能有一个例程同时使用该password file。
5.如果这在数据库所在的机器上做DBA工作,则可以使用OS auth,如果要从别的客户端做DBA工作,则可以使用password file auth
上面是我的理解,有什么不对的还请高手指点。
oracle认证方式分为操作系统认证和口令文件认证2种方式,操作系统认证有时候也叫本地认证。这2种认证我是这么理解的:
--操作系统认证:即oracle认为操作系统用户是可靠的,即既然能登陆到操作系统那么oracle数据库你也能登陆
--口令文件认证:oracle认证认为操作系统用户是不可信任的,如果要访问数据库,必须进行再次认证。
具体实现如下:
--操作系统认证:
配置sqlnet.ora文件中的参数:SQLNET.AUTHENTICATION_SERVICES=(NTS)
spfile(pfile)文件参数:REMOTE_LOGIN_PASSWORDFILE=('NONE')
--口令文件认证:
配置sqlnet.ora文件中的参数:SQLNET.AUTHENTICATION_SERVICES=(NONE)
spfile(pfile)文件参数:REMOTE_LOGIN_PASSWORDFILE=('EXCLUSIVE')或('SHARED')
这个时候需要配置口令文件PWDorcl.ora。(orcl为数据库SID)
select * from v$pwfile_users;
- 上一篇:Oracle外部身份认证研究
- 下一篇:优秀系统集成工程师应具备哪些专业知识

