12C -- ORA-28040

时间:2021-08-27 19:16:24

新安装的12.2数据库,尝试连接数据库的时候,报ora-28040错误:

12C -- 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