oracle操作系统认证方式

[ 2008-8-6 9:34:00 | By: 梦精灵 ]

 

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都是用来给DBAadministratation工作的选项。
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,则不允许除sysinternal之外的任何用户以SYSDBA身份登陆,但是可以有多个例程同时使用该password file。如果Set REMOTE_LOGIN_PASSWORDFILE to EXCLUSIVE,则允许除sysinternal之外的拥有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;

 

发表评论:

    大名:
    密码: (游客无须输入密码)
    主页:
    标题:
    正在载入数据,请稍候……