電腦改名導致資料庫連結的詭異問題

來源:互聯網
上載者:User

標籤:資訊   tar   名稱   系統資料表   window   通過   log   問題:   緊急   

  前幾天給開發部門部署測試資料庫時,遇到一個很詭異的問題:建立一個連結的伺服器GEK-MIS01時,報錯如下:

    訊息 15190,層級 16,狀態 1,過程 sp_dropserver,第 56 行

    仍有對伺服器 ‘GEK-MIS01‘ 的遠程登入或連結登入。

指令碼如下(略去登入名稱等關鍵資訊): 

 View Code

 因為當時是一批指令碼執行而且僅有這個指令碼出錯,當我準備查檢查出錯原因的時候,又有更緊急的事情要處理,就耽擱了處理這個問題,開發那邊在測試過程發現這個資料庫連結有問題,郵件反饋給我,我檢查時居然發現很多不可思議的現象:

(1): 我用SSMS進入“伺服器對象”——“連結的伺服器”下,居然看不到這個連結的伺服器對象,而通過sysservers等系統資料表又能查到這個伺服器連結化物件的資訊,當時我就百思不得其解,納尼啊?

(2) 重新執行上面指令碼時發現刪除連結的伺服器那段指令碼根本刪除不了該連結的伺服器,而添加連結的伺服器時則報錯

   IF  EXISTS (SELECT srv.name FROM sys.servers srv WHERE srv.server_id != 0 AND srv.name = N‘GEK-MIS01‘)

       EXEC master.dbo.sp_dropserver @server=N‘GEK-MIS01‘, @droplogins=‘droplogins‘

   GO

   EXEC master.dbo.sp_addlinkedserver @server = N‘GEK-MIS01‘, @srvproduct=N‘SQL Server‘

  訊息 15028,層級 16,狀態 1,過程 sp_addlinkedserver,第 82 行

  伺服器 ‘GEK-MIS01‘ 已存在。

(3):接下來我測試了下連結的伺服器的使用方式,發現有些登入名稱(Windows 身份認證,sysadmin角色)下使用該資料庫連結沒有問題,而SQL Server身分識別驗證的登入名稱則會報下面錯誤:

  EXEC [GEK-MIS01].DatabaseName.dbo.Procedure  ‘xxxx‘

  訊息 916,層級 14,狀態 1,第 1 行

  伺服器主體 "username" 無法在當前安全上下文下訪問資料庫 "xxxxx"。

(4):而在SSMS下,在"伺服器對象"—>“連結的伺服器”—> "GEK-MIS01"下單擊目錄時,報如下錯誤。

具體錯誤資訊如下:

 View Code

解決辦法: 查看當前USER為guest, 執行下面賦權語句即可解決問題

SELECT CURRENT_USER;

GRANT EXECUTE ON SYS.XP_PROP_OLEDB_PROVIDER TO guest;

但是對於現象1,2,3則困擾了我好久,一直以為是許可權問題,最後經過吐血的漫長排查,終於發現一個讓人吐血的原因:這台測試資料庫伺服器原先的電腦名稱為gek-mis01,後來不知道啥原因被系統管理員用作測試伺服器(曆史原因了我就不多說了),改名為GETTESTNT15,而一台新的伺服器命名為gek-mis01,結果我今天建立連結的伺服器時,就踩到了這個地雷。

接下來解決起來就比較順利了,首先刪除該連結的伺服器,修複電腦改名問題,重新建立該連結資料庫,OK,問題解決了!

Code Snippet
  1. exec sp_droplinkedsrvlogin‘GEK-MIS01‘ ,‘xxxxx‘
  2.  
  3. exec sp_dropserver‘GEK-MIS01‘
  4.  
  5.  
  6. USE master;
  7. GO
  8. IF SERVERPROPERTY(‘servername‘) <> @@SERVERNAME
  9. BEGIN
  10. DECLARE @server sysname;
  11. SET @server [email protected]@SERVERNAME;
  12. EXEC [email protected]= @server;
  13. SET @server = CAST(SERVERPROPERTY(‘servername‘) AS sysname);
  14. EXEC [email protected][email protected], @local=‘LOCAL‘;
  15. END

 

電腦改名導致資料庫連結的詭異問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.