os认证和密码文件认证
oracle数据库通过sqlnet.ora文件中的参数SQLNET.AUTHENTICATION_SERVICES,PFILE(或SPFILE)文件中的参数REMOTE_LOGIN_PASSWORDFILE和口令文件PWDsid.ora三者协同作用实现身份认证。
SQLNET.AUTHENTICATION_SERVICES=(NTS)|(NONE)
SQLNET.AUTHENTICATION_SERVICES=(NTS): 操作系统认证方式,不使用口令文件
SQLNET.AUTHENTICATION_SERVICES=(NONE):口令文件认证方式
REMOTE_LOGIN_PASSWORDFILE=('NONE')|('EXCLUSIVE')|('SHARED')
REMOTE_LOGIN_PASSWORDFILE=('NONE'):不使用口令文件,操作系统认证
REMOTE_LOGIN_PASSWORDFILE=('EXCLUSIVE'):口令文件认证方式,但只有一个数据库实例可以使用此文件,
系统允许将SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用户,且以具有这类身份的其他用户登录是有效的
REMOTE_LOGIN_PASSWORDFILE=('SHARED'):口令文件认证方式,可有多个数据库实例使用此文件,但是此设置下只有INTERNAL/SYS帐号能被识别,即使文件中存有其他用户的信息,也不允许他们以SYSOPER/SYSDBA登录
1:SQLNET.AUTHENTICATION_SERVICES=(NTS)同时REMOTE_LOGIN_PASSWORDFILE=('NONE'),此时为操作系统认证方式。
当以oracle_dba组下的用户登录进入本地linux系统后进行下边的操作:
sqlplus /nolog
sql>conn /as sysdba
或
sqlplus /nolog
sql>conn 任意用户名/密码 as sysdba
均可以sysdba身份登录成功,进行数据库方面的操作
当以远程进行登录时,执行
sqlplus /nolog
sql>conn /as sysdba
或
sqlplus /nolog
sql>conn sys/密码 as sysdba
均显示“ERROR:ORA-01031: insufficient privileges”
也就是不允许以sysdba身份远程登录系统,这也是os认证之所以也称为本地认证方式的原因。
2:SQLNET.AUTHENTICATION_SERVICES=(NONE)同时REMOTE_LOGIN_PASSWORDFILE=('EXCLUSIVE')或('SHARED'),配合口令文件PWDsid.ora,此时为口令文件认证方式.当在本地以oracle_dba组下的用户登录进入linux后进行下边的操作:
sqlplus /nolog
sql>conn /as sysdba
显示“ERROR:ORA-01031: insufficient privileges”
实质上是要求提供拥有sysdba身份的用户名和密码在本地或远程进行下边的操作sqlplus "sys/密码@服务名 as sysdba"可进入系统也就是说口令文件认证方式允许用户从本地或远程以sysdba身份登录,但必须提供口令字.
3: SQLNET.AUTHENTICATION_SERVICES=(NTS)同时REMOTE_LOGIN_PASSWORDFILE=('EXCLUSIVE')或('SHARED'),配合口令文件
PWDsid.ora,此时操作系统认证和口令文件认证同时起作用
当在本地以oracle_dba组下的用户登录进入linux后进行下边的操作:
sqlplus /nolog
sql>conn /as sysdba
可进入系统
当在远程执行
sqlplus "sys/密码@服务名 as sysdba"
同样可正常登录到数据库系统上.
三、其他
从前边的讨论可以知道,我们能够对sys以外的用户赋予sysdba身份,具体方法就是
SQLNET.AUTHENTICATION_SERVICES=(NONE)
REMOTE_LOGIN_PASSWORDFILE=('EXCLUSIVE')
口令文件PWDsid.ora
SQL>grant sysdba to 用户名
这样,其他具有sysdba身份的用户就加入到PWDsid.ora中,并可以被PWDsid.ora识别,我们可以用这个被赋予sysdba身份的用户登录并进行类似sys用户下所能执行的操作
NONE
Oracle ignores any password file. Therefore, privileged users must be authenticated by the operating system.
SHARED
More than one database can use a password file. However, the only user recognized by the password file is SYS.
EXCLUSIVE
The password file can be used by only one database and the password file can contain names other than SYS