新安装的12.2数据库,尝试连接数据库的时候,报ora-28040错误:
这是由于12C数据库默认参数(默认支持的客户端版本)设置的原因。
在12C中,SQLNET.ALLOWED_LOGON_VERSION参数已经过期。替代参数是:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=n
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=n
默认值是11,任何客户端要想连接到数据库,其版本必须要大于sqlnet.ora中指定的值。
在12C数据库作为客户端连接连接其他数据库的时候,比如有dblink,就需要在server端配置SQLNET.ALLOWED_LOGON_VERSION_CLIENT
默认情况下,oracle数据库会读取位于RDBMS_HOME/network/admin目录下sqlnet.ora。除非TNS_ADMIN显式指定指向了GRID_HOME/network/admin
注:
即使将SQLNET.ALLOWED_LOGON_VERSION_SERVER设置为8,9,10,也并不意味着完全支持这些版本的客户端。
修改参数后重启数据库即可:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=11