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密码验证。