客户端以sysdba身份登录服务器的设置方法

近的时间,在搞数据库的安全加固问题,关于数据库中关于sysdba权限的登陆,经过最近的一些实践和测试,在这里记录一下:
数据库用sysdba登陆的验证有两种方式,一种是经过os认证,一种是经过密码文件验证;登陆方式有两种,一种是在数据库主机直接登陆(用os认证的方式),一种是经过网络远程登陆;须要设置的参数有两个,一个是SQLNET.AUTHENTICATION_SERVICES,一个是REMOTE_LOGIN_PASSWORDFILE。
os认证:若是启用了os认证,以sysdba登陆,那么咱们只要用oracle软件的安装用户就能登陆:sqlplus “/ as sysdba”。若是咱们要禁用os认证,只利用密码文件登陆,咱们首先要有一个密码文件:
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”能登陆
相关文章
相关标签/搜索