Oracle 不知使用者的密碼時,如何獲取dblink建立語句
標題:
* 9i及以前版本可透過 dba_db_links的檢視原表sys,link$的password欄位獲取密碼;
SQL:select u.name,l.password/*9i版本會記錄密碼*/, l.name, l.userid, l.host, l.ctime,l.passwordx
from sys.link$ l, sys.user$ u
where l.owner# = u.user#;
* 9i後,password 欄位為空,且sys.link$多了一個passwordx(raw加密密碼欄位)
* 11.2.0.4以前,可透過《SELECT to_char(dbms_metadata.get_ddl('DB_LINK','ZBTMS_STANDBY','PUBLIC')) FROM dual;》獲取建立dblink語句或者11.2.0.4及以後版本方法
dbms_metadata.get_ddl獲取語句如下:
CREATE PUBLIC DATABASE LINK "ZBTMS_STANDBY"
CONNECT TO "USR_QUERY" IDENTIFIED BY VALUES ':1'/*比正常dblink建立語句多values關鍵字(values值在sys.link$.passwordx欄位獲取 )*/
USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.240.1.1)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ZB_TMS)))' ;
* 11.2.0.4及以後版本,若透過dbms_metadata.get_ddl獲取語句直接執行會提示無效的values關鍵字;可透過plsql developer 工具匯出sys.links的insert語句再其他庫中執行即可
方法1、工具-->匯出表-->部分範圍
aa.sql文字內容如下:
更改aa.sql檔案dblink名稱name部分(更改為LOTTERY)儲存並在測試環境進行匯入;
SQL> SELECT count(1) count_ FROM LINK$ where name='LOTTERY';
count_
----------
匯入:
SQL> @C:\Users\Administrator\Desktop\aa.sql
PL/SQL Developer import file
Created on 2016年7月26日 by Administrator
Loading LINK$...
1 records loaded
Done.
驗證:
SQL> SELECT * FROM dual@LOTTERY;
DUMMY
-----
X
SQL>
方法2、在sql視窗執行範圍查詢
查詢:SELECT owner#, name,host, userid, flag,passwordx FROM LINK$ where name='ZBTMS_STANDBY';
匯出:<Export Query Results>-->sql file 另存為C:\Users\Administrator\Desktop\aa.sql
匯入:insert into LINK$ (OWNER#, NAME, HOST, USERID, FLAG, PASSWORDX,ctime/*補充必填項*/ )
values (1,'LOTTERY','(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.240.1.1)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ZB_TMS)))','USR_QUERY',2, '06B39E07640DB9E1AF7609A48EB338AD8F7C078A30C75D249CE0E7D7BF4C471690A0FF15945B38185BEA41A611AC756B7FE5154F90CCBD562CA069E300025A24E342F0DE1BF56215EC52E2B6A86B4E7468EF87C7A1238D755F96BAF2CFF78918E7745CBBB',sysdate);
1 row inserted
驗證:
SQL> SELECT * FROM dual@LOTTERY;
DUMMY
-----
X
SQL>
擴充套件:
select utl_raw.cast_to_varchar2('值') from dual; -->此passwordx 加密欄位透過此函式轉換 獲取的是亂碼....
utl_raw.cast_to_raw('varchar2值');--將varchar2轉換為raw型別
utl_raw.cast_to_varchar2('raw值');--將raw轉換為varchar2型別
【源於微信群技術分享,特此整理】 若有書寫錯誤,表達錯誤,請指正...
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28602568/viewspace-2122564/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 通過dblink獲取遠端DDL語句
- Oracle獲取資料庫中的物件建立語句Oracle資料庫物件
- Oracle 獲取ddl語句Oracle
- 不知道Oracle system使用者密碼,修改後如何還原密碼Oracle密碼
- Oracle中獲取TABLE的DDL語句的方法Oracle
- oracle之 獲取建表ddl語句Oracle
- MYSQL建立使用者時用密文密碼MySql密碼
- oracle dblink實現insert語句的同步Oracle
- oracle dbms_metadata 獲取ddl語句Oracle
- Oracle下不知道密碼的情況下如何還原密碼Oracle密碼
- Oracle中獲取最低效的 topSQL的語句 (引用)OracleSQL
- Oracle 建立序列語句Oracle
- 獲取物件DDL語句的方法物件
- 獲取物件的構建語句物件
- 建立使用者時的密碼校驗問題密碼
- link$中明文存放了建立dblink的使用者名稱和密碼密碼
- 獲取oracle正在處於等待狀態的sql語句的執行計劃的語句OracleSQL
- Laravel 獲取執行的sql語句LaravelSQL
- Oracle建立dblink MySQLOracleMySql
- MySql增加使用者、授權、修改密碼等語句MySql密碼
- oracle匯出使用者、表空間和角色的建立語句Oracle
- 獲取oracle sql語句詳細些執行計劃OracleSQL
- 如何獲取expdp出來的dmp檔案中的DDL語句
- oracle 檢視使用者密碼的修改時間Oracle密碼
- oracle檢視建立物件的DDL語句Oracle物件
- Oracle建立表空間、使用者、分配許可權語句Oracle
- 【PL/SQL】oracle建立dblinkSQLOracle
- 忘記oracle的sys密碼該如何重置;附如何修改oracle資料庫使用者密碼Oracle密碼資料庫
- 【密碼】Oracle使用者密碼系列密碼Oracle
- 建立oracle dblink 的兩種方式Oracle
- 如何匯出MySQL索引的建立語句MySql索引
- 觸發器中獲取SQL語句觸發器SQL
- msn密碼獲取軟體密碼
- 建立oracle 密碼檔案Oracle密碼
- 國外免費代理ip地址密碼如何獲取?密碼
- 如何讓Python不回顯獲取密碼輸入Python密碼
- 建立dblink的兩個指令碼。指令碼
- svn建立使用者及密碼密碼