oracle中所有存在不存在的用户都可以使用dba连接到数据库

oracle中所有存在不存在的用户都可以使用dba连接到数据库及解决方式

以前一直使用conn /as sysdba连接数据库,不明白里面的意思。今天无意中使用其他的用户名密码连接到dba竟然也可以(例如conn aaa/bbb sysdba).oracle只要是sysdba没有验证你的账户名和密码。是因为oracle设置了使用操作系统本地验证。也就是说你只要设置当前的用户隶属于ora_dba组,那么该用户则可以连接到dba,不验证其用户密码。

解决方案:

1.设置用户不属于ora_dba这个用户组

2.修改oracle目录下的sqlnet.ora文件

  SQLNET.AUTHENTICATION_SERVICES= (NTS)          基于操作系统验证,
  SQLNET.AUTHENTICATION_SERVICES= (NONE)        基于Oracle密码文件验证
  SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)  二者并存

  window:

  设置oracle中的sqlnet.ora文件的SQLNET.AUTHENTICATION_SERVICES值为NONE即可

  linux

  在linux下的oracle是没有这个SQLNET.AUTHENTICATION_SERVICES参数设置的,默认为操作系统验证和Oracle密码验证并存,加上SQLNET.AUTHENTICATION_SERVICES这个参数后,不管是设置为NONE还是NTS还是(NONE,NTS),都是基于Oracle密码验证。

原文地址:https://www.cnblogs.com/gavinYang/p/3780163.html