toad连接oracle12c,[20181107]低版本toad连接18c数据库问题.txt
[20181107]低版本toad連接18c數據庫問題.txt
--//同事使用低版本toad連接18c遇到的問題,無法連接.實際上該版本toad使用10.2.0的oracle client.
根據MOS文檔 (ID 755605.1),ORA-28040的錯誤需要在Oracle 用戶(非grid用戶)的sqlnet.ora 文件中添加:
SQLNET.ALLOWED_LOGON_VERSION=8
或者使用更高版本的客戶端。
但實際上,根據MOS文檔(ID 2111876.1), 在Oracle 12c 以后的版本,
SQLNET.ALLOWED_LOGON_VERSION 參數已經棄用了,應該使用以下2個參數代替:
SQLNET.ALLOWED_LOGON_VERSION_SERVER = n
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = n
--//修改數據庫的sqlnet.ora文件加入:
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 10
--//嘗試連接報ora-1017錯誤,密碼肯定沒有問題,檢查視圖發現:
XXXX> select username,password_versions from dba_users;
USERNAME ? ? ? ? ? ? ? ? ? ? ? PASSWORD_VERSIONS
------------------------------ ----------------------------------
SYS ? ? ? ? ? ? ? ? ? ? ? ? ? ?11G 12C
SYSTEM ? ? ? ? ? ? ? ? ? ? ? ? 11G 12C
...
--//可以發現PASSWORD_VERSIONS沒有包括10g.
XXXX> alter user system identified by xxxx;
alter user system identified by xxxx
*
ERROR at line 1:
ORA-65066: The specified changes must apply to all containers
--//自己終于知道為什么修改system密碼為什么必須應用全部containers.鏈接如下:
All Oracle-supplied administrative user accounts, such as SYS and SYSTEM, are common users and can navigate across the
CDB. Common users can have different privileges in different PDBs. For example, the common user SYSTEM can switch
between PDBs and use the privileges that are granted to SYSTEM in the current PDB.
. . .
If you plug a PDB that contains a common user into a CDB, then the following actions take place:
The common user accounts in this PDB lose commonly granted privileges that they may have had, including the SET
CONTAINER privilege.
If the target CDB has a common user with the same name as a common user in a newly plugged-in PDB, then the new common
user is merged with the target CDB common user. The password of the target CDB common user takes precedence.
See that last sentence? As others, and the doc, say a common user is COMMON. The standard users SYS and SYSTEM are
common users so only have one password.
--//登錄cdb數據庫,執行如下ok.
alter user SYSTEM identified by xxxx container=all;
--//不過有點奇怪的是
CDB> select username,password_versions from dba_users;
USERNAME ? ? ? ? ? ? ? ? ? ? ? PASSWORD_VERSIONS
------------------------------ ----------------------------------
SYS ? ? ? ? ? ? ? ? ? ? ? ? ? ?11G 12C
SYSTEM ? ? ? ? ? ? ? ? ? ? ? ? 10G 11G 12C
--//而PDB下顯示的依舊不包括10g.
CDB> select username,password_versions from dba_users;
USERNAME ? ? ? ? ? ? ? ? ? ? ? PASSWORD_VERSIONS
------------------------------ ----------------------------------
SYS ? ? ? ? ? ? ? ? ? ? ? ? ? ?11G 12C
SYSTEM ? ? ? ? ? ? ? ? ? ? ? ? 11G 12C
--//另外注意的問題,比如我當前的client端是12c版本.如果我執行alter user SYSTEM identified by xxxx container=all;,口令版本
--//一樣無效,不會包括10g,必須修改我的sqlnet.ora文件加入:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
--//再登錄數據庫修改口令才會生效.
總結
以上是生活随笔為你收集整理的toad连接oracle12c,[20181107]低版本toad连接18c数据库问题.txt的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle的存储过程 替换,为什么在存
- 下一篇: linux cmake编译源码,linu