orapwd file=C:\oracle\product\10.2.0\db_1\database\PWDoralocal.ora password=maximo entries=10;
而后咱们要把$ORACLE_HOME/network/admin/sqlnet.ora中设置:
SQLNET.AUTHENTICATION_SERVICES= none
注意一下,密码文件只在数据库启动的时候加载进去,一旦加载进去,密码文件就脱离了oracle管理,因此咱们用orapwd新建密码文件后,里面指定的密码要在数据重启后才能生效:
至此,咱们已经实现不用os认证(sqlplus “/ as sysdba”的方式登陆不了)。那么咱们怎么限制网络方面利用sysdba远程登陆呢?咱们能够设置初始化文件中的REMOTE_LOGIN_PASSWORDFILE=none。
注意,当REMOTE_LOGIN_PASSWORDFILE=none时,这个参数生效须要重启数据库,而且,一旦启用这个参数,将使用操做系统认证,不使用口令文件。所以若是REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES= none这个时候数据库是没法登陆的。
alter system set REMOTE_LOGIN_PASSWORDFILE=none scope=spfile;
(1)REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES= none:
oracle安装用户本地sqlplus “/ as sysdba”没法登陆
非oracle安装用户本机sqlplus “sys/change_on_install as sysdba”没法登陆
非oracle安装用户远程sqlplus “/ as
sysdba_on_install@sid as sysdba”没法登陆
(2)REMOTE_LOGIN_PASSWORDFILE=exclusive且SQLNET.AUTHENTICATION_SERVICES= none:
oracle安装用户本地sqlplus “/ as sysdba”没法登陆
非oracle安装用户本机sqlplus “sys/change_on_install as sysdba”能登陆
非oracle安装用户远程sqlplus “/ as
sysdba_on_install@sid as sysdba”能登陆
(3)REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES= (NTS):
oracle安装用户本地sqlplus “/ as sysdba”能登陆
非oracle安装用户本机sqlplus “sys/change_on_install as sysdba”没法登陆
非oracle安装用户远程sqlplus “/ as
sysdba_on_install@sid as sysdba”没法登陆
(4)REMOTE_LOGIN_PASSWORDFILE=exclusive且SQLNET.AUTHENTICATION_SERVICES= (NTS):
oracle安装用户本地sqlplus “/ as sysdba”能登陆
非oracle安装用户本机sqlplus “sys/change_on_install as sysdba”能登陆
非oracle安装用户远程sqlplus “/ as
sysdba_on_install@sid as sysdba”能登陆