SQL Server問題之電腦名稱更改後無法登陸本機資料庫

來源:互聯網
上載者:User
問題描述

 

 

問題原因猜測與驗證

首先聲明,這兒的Login Failed不是什麼SQL Server 服務沒起來之類的錯誤引起。一般的解決辦法是不行的,可能的原因筆者猜測是由於電腦名稱更改造成,最終在成功解決問題後發現確實如此。在安裝SQL Server預設執行個體時,筆者採用的認證模式是Windows驗證,而且使用者是原生一個使用者帳戶(不是域帳戶),所以當機器名稱更改後就會導致無法串連,因為之前安裝的資料庫執行個體它認為使用者是之前的使用者,而且沒有sa使用者。

問題解決

幸好微軟提供了一個解決辦法PsExec,它允許你以NT AUTHORITY\SYSTEM帳號運行程式,和“常規”管理員帳號不同——具有天生訪問SQLServer的許可權。(祥請參考串連http://blog.csdn.net/dba_huangzj/article/details/7927266)

下載PsExec地址:http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

註:PsExec是PsTools的一個組件

下載完成後以管理員身份開啟CMD,並cd到PsTools的解壓目錄,然後運行如下命令

PsExec -s -i "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe" 其中””中的內容為SSMS(SQL Server Management Studio)的路徑

接下來的操作也請參考上面的第一個串連(添加域帳戶和sa(如果你想)),在此不再贅述。

注意要先使的驗證模式為混合驗證模式,否則建立登陸帳號是不起作用的

拓展延伸

不得不說PsExec (PsTools)是一個好工具,以後出現無法登陸或串連的情況,可以用這個工具直接類比登陸,然後想怎麼建立使用者或修改許可權都可以。

後續

後來又發現機器名稱更改後還會造成無法進行發布複製啊,坑爹啊,Google了一下,可以通過以下指令碼解決此問題

USE MASTERGOSELECT @@SERVERNAME;SELECT SERVERPROPERTY('SERVERNAME')--如果這兩個結果不一致,說明機器改過名字,在配置複製的時候就會報上面的錯誤。--要修複此問題 --執行下面的語句,完成後重新啟動SQL服務 IF SERVERPROPERTY('SERVERNAME') <> @@SERVERNAME  BEGIN      DECLARE @SERVER SYSNAME      SET @SERVER = @@SERVERNAME       EXEC SP_DROPSERVER @SERVER = @SERVER      SET @SERVER = CAST(SERVERPROPERTY('SERVERNAME') AS SYSNAME)      EXEC SP_ADDSERVER @SERVER = @SERVER, @LOCAL = 'LOCAL'  END--最後別忘了重新啟動服務哦,啟動完後,再運行

記住:一定要重啟SSMS等相關服務

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.