我们都知道,conn / as sysdba直接登录数据库,采用的是服务器操作系统验证登录方式,即常说的OS验证登录方式。
下面以常见的windows操作系统来说明看一下这个操作系统认证方式登录的原理。如果你的机器可以使用connect / as sysdba获取sysdba的权限,那么下面的每一个过程你的机器上都会得到验证,如果不能,按照下面的操作更改后,你也能以这种方式登录。
1:在命令行下敲入compmgmt.msc 进入计算机管理
2:选择本地用户和组—>组
3:看是不是有一个组的名字叫做ORA_DBA
4:双击改组可以看到里面是不是有administrator用户
5:想一想你是不是以administrator用户登录的呢?
6:再进入Oracle安装目录(即$ORACLE_HOME 一般是D:\oracle\ora92\network\admin 找到sqlnet.ora文件看看里面的是不是有SQLNET.AUTHENTICATION_SERVICES= (NTS)
如果这些都对的话,你就能已操作系统认证的方式(connect / as sysdba)来登录Oracle 17jquery.com
接下来的问题是,如果你的数据很重要,出于安全考虑,希望禁止这种操作系统认证的方式。那么该怎么做呢?
找到在刚才的第6步骤中的sqlnet.ora文件,将SQLNET.AUTHENTICATION_SERVICES= (NTS)改为SQLNET.AUTHENTICATION_SERVICES=none即可。你再试一下看看会不会得到到如下结果:
ERROR:
ORA-01031: insufficient privileges
警告: 您不再连接到 ORACLE。
1:在命令行下敲入compmgmt.msc 进入计算机管理
2:选择本地用户和组—>组
3:看是不是有一个组的名字叫做ORA_DBA
4:双击改组可以看到里面是不是有administrator用户
5:想一想你是不是以administrator用户登录的呢?
6:再进入Oracle安装目录(即$ORACLE_HOME 一般是D:\oracle\ora92\network\admin 找到sqlnet.ora文件看看里面的是不是有SQLNET.AUTHENTICATION_SERVICES= (NTS)
如果这些都对的话,你就能已操作系统认证的方式(connect / as sysdba)来登录Oracle 17jquery.com
接下来的问题是,如果你的数据很重要,出于安全考虑,希望禁止这种操作系统认证的方式。那么该怎么做呢?
找到在刚才的第6步骤中的sqlnet.ora文件,将SQLNET.AUTHENTICATION_SERVICES= (NTS)改为SQLNET.AUTHENTICATION_SERVICES=none即可。你再试一下看看会不会得到到如下结果:
ERROR:
ORA-01031: insufficient privileges
警告: 您不再连接到 ORACLE。
但是,我认为这并不是解决问题的最好办法,因为只要我知道操作系统oracle用户或administrator用户的密码,我就可以直接修改sqlnet.ora文件,然后时操作系统认证重新生效,这样并不能完全杜绝类似的事情发生。
最好的办法就是严格控制dba用户组的用户密码,如果这些用户的密码一旦泄露,那么你的sqlnet.ora文件也不再安全,那么你的数据库登录密码验证方式也将被随时修改。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/751371/viewspace-707991/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/751371/viewspace-707991/