沒有了SA密碼,沒法Windows集成身份登陸,DBA怎麼辦?

      一同事反饋SQL沒法正常登陸了,之前都是經過windows集成身份驗證登陸進去的(sa密碼早忘記了),今天就改了服務器的機器名,如今不管如何都登陸不進去。windows

      SQL登陸時若是採用windows集成身份驗證,登陸框將會以「機器名\當前系統用戶名」的格式顯示登陸名,並且登陸名和密碼都是灰色的,不容許用戶輸入。服務器

      瞭解到同事剛剛修改了服務器的機器名,所以在SQL的登錄框中顯示「新機器名\當前系統用戶名」。要知道windows集成身份驗證能登陸的緣由是在SQL的登陸名中已經包括了該用戶名,原來的用戶名在SQL安裝的時候已經記錄到了SQL中,若是機器名變動了,「新機器名\當前系統用戶名」確定沒法正常登陸。命令行

clip_image001[4]

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

     後來在微軟的官網上看到一篇文檔,原來只要在SQL的啓動參數中加一個「-m」的選項(記得在-m前加分號),而後須要重啓SQL服務,再次用SQL Management Studiowindows集成身份驗證登錄就能夠了。blog

clip_image003[4]

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

    這個問得很是專業。當時我也沒有搞明白,以爲有點難以想象,但結果就是這樣,確定有其道理。後來在微軟的官網上找到了這段話。文檔

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.get

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

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

    參考資料:http://technet.microsoft.com/en-us/library/dd207004.aspx

相關文章
相關標籤/搜索