程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 沒有sa密碼無法集成windows身份驗證登錄的解決方法

沒有sa密碼無法集成windows身份驗證登錄的解決方法

編輯:關於SqlServer

SQL登錄時如果采用windows集成身份驗證,登錄框將會以“機器名\當前系統用戶名”的格式顯示登錄名,而且登錄名和密碼都是灰色的,不允許用戶輸入。

了解到同事剛剛修改了服務器的機器名,因此在SQL的登陸框中顯示“新機器名\當前系統用戶名”。要知道windows集成身份驗證能登錄的原因是在SQL的登錄名中已經包括了該用戶名,原來的用戶名在SQL安裝的時候已經記錄到了SQL中,如果機器名變更了,“新機器名\當前系統用戶名”肯定無法正常登錄。

網上看到有人說可以采用OSQL–S instancename –E(在命令行窗口中輸入)登錄進去後再去修改sa的密碼,一番嘗試後發現是扯談,因為采用這種方式的前提是需要windows集成身份能夠登錄。

後來在微軟的官網上看到一篇文檔,原來只要在SQL的啟動參數中加一個“-m”的選項(記得在-m前加分號),然後需要重啟SQL服務,再次用SQL Management Studio的windows集成身份驗證登陸就可以了。

-m表示單用戶登錄。細心的讀者可能會質疑了:只是加了-m,但最後還是采用的windows集成身份驗證,理論說跟之前使用SQLOS –S instancename –E有什麼區別呢?

 這個問得非常專業。當時我也沒有搞明白,覺得有點不可思議,但結果就是這樣,肯定有其道理。後來在微軟的官網上找到了這段話。

Start the instance of SQL Server in single-user mode by using either the -m or -f options. Any member of the computer's local Administrators group can then connect to the instance of SQL Server as a member of the sysadmin fixed server role.

大概的意思是說當在SQL的啟動參數中添加了-m或者-f參數時,計算機本地管理員組的任何一個用戶都可以sysadmin的身份登錄到SQL中。相信讀者看到這個地方就明白了。這裡其實並沒有去檢驗登錄的用戶是否在SQL在存在,只是檢查該用戶是否為本地計算機的管理組中的用戶。

好了,相信後面就不用過多累贅了,只是提醒下讀者:修改了sa密碼後記得把原來添加在SQL啟動參數的-m刪除掉,然後在重啟SQL服務。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved