sp_addlinkersrvlogin從oracle查詢數據
2024-08-29 13:34:13
供稿:網友
 
             摘自fengfangfang專欄代碼只有三句:sp_addlinkedserver 'Oraclelink', 'Oracle', 'MSDAORA', 'oraclenetname'/*其中oraclelink是要在sql中使用的名稱,                                                                                            oraclenetname是oracle網絡服務名稱。*/gosp_addlinkedsrvlogin 'oraclelink', 'false', 'sa', 'oracleuserid', 'oraclepwd'/*其中oraclelink是要在sql中使用的名稱,是在sp_addlinkedserver定義的;sa是sql中的用戶,oracleuserid是oracle數據庫的登錄名稱,oraclepwd是oracleuserid的密碼。*/go SELECT * FROM oraclelink..ORACLEUSERID.AREA AREA_1go/*用戶名和表名ORACLEUSERID.AREA一定要大寫,否則將會得到如下錯誤信息: 服務器: 消息7314,級別16,狀態1,行1OLE DB 提供程序'oraclelink' 不包含表'"oracleuserid"."AREA"'。該表可能不存在,或當前用戶沒有使用該表的權限。OLE DB 錯誤跟蹤[Non-interface error:  OLE DB PRovider does not contain the table: ProviderName='oraclelink', TableName='"oracleuserid"."AREA"']。 英文為提示為:Server: Msg 7314, Level 16, State 1, Line 0OLE DB provider 'oraclelink' does not contain table '"oracleuserid"."AREA"'.  The table either does not exist or the current user does not have permissions on that table. OLE DB error trace [Non-interface error:  OLE DB provider does not contain the table: ProviderName='oraclelink', TableName='"oracleuserid"."AREA"'].  當前使用的用戶,也就是使用企業治理器或查詢分析器連接SQL Server的用戶一定是sp_addlinkedsrvlogin中設置的用戶,上面使用的是sa假如使用windows集成驗證,將會得到如下錯誤信息: 服務器: 消息7399,級別16,狀態1,行1OLE DB 提供程序'MSDAORA' 報錯。驗證失敗。[OLE/DB provider returned message: ORA-01004: 不支持默認用戶名特性;登錄被拒絕]OLE DB 錯誤跟蹤[OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize returned 0x80040e4d:  驗證失敗。]。 英文為提示為: Server: Msg 7399, Level 16, State 1, Line 1OLE DB provider 'MSDAORA' reported an error. Authentication failed.[OLE/DB provider returned message: ORA-01004: default username feature not supported; logon denied]OLE DB error trace [OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize returned 0x80040e4d: Authentication failed.]. */