Sql Server 2008在命令行下啓用sa賬戶的解決方法 [Windows2008(64bit)]

公司最近安裝了一個服務器版軟件,這個軟件在安裝過程中自帶安裝了SQL Server 2008 R2的數據庫引擎,但沒有安裝SQL Server Management Studio 客戶端[SSMS],因此在管理數據方面只能使用Sqlcmd命令行工具。因爲查詢結果經常折行,查看很是不便,於是有了安裝一個SSMS在服務器上的想法。但是實地考察發現,服務器上還有其他服務在使用,因此不能重啓電腦,於是放棄這個做法。

  在遠程桌面的幫助下,以Administrator用戶登錄到這臺服務器上,在命令行下使用sqlcmd工具查看一下數據庫登錄用戶的情況。

[c-sharp] view plaincopy
  1. sqlcmd -S ./InstanceName  
  2. SELECT name, type, is_disabled FROM sys.server_principals  
  3. GO  

  發現sa賬戶沒有啓用,於是從網上搜索了一下,發現修改啓用狀態和修改密碼的方法。

[c-sharp] view plaincopy
  1. ALTER LOGIN sa ENABLE  
  2. GO  
  3. ALTER LOGIN sa WITH PASSWORD='xxxxxxxxxxxxxx'  
  4. GO  

  然後使用sqlcmd -S ./InstanceName -U sa測試了一下,結果當然是發生了一堆錯誤信息。

  平靜下來之後,我想到了可能是Windows身份驗證模式的問題,於是在網上一頓狂搜,發現一個人寫到了不登錄修改服務器登錄模式 的方法。然後到服務器上的註冊表裏進行修改,但是按照上面鏈接裏的方法卻沒找到對應的鍵值,即[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SQL Server/MSSQL10.InstanceName/MSSQLServer/LoginMode]。服務器上的註冊表裏沒有MSSQL10.InstanceName這個項而有一個InstanceName項,它下面的MSSQLServer裏也沒有LoginMode項。哎呀,真是鬱悶。

  就在我準備放棄時,有個想法跳出來了,“在註冊表裏搜一下LoginMode”,哈哈,還是挺幸運滴,我搜到了。但是路徑完全不一樣,我什麼也沒想,就是一頓改,然後重啓SQL Server服務。再次使用sqlcmd測試了一下,哈哈,這次登錄成功啦。

  下面把步驟說一下,我的註冊表路徑是[HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/Microsoft SQL Server/MSSQL10_50.InstanceName/MSSQLServer],這個文件夾裏有LoginMode鍵,把它由1[windows身份驗證模式]改成2[混合模式]就行啦,呵呵,別忘了重啓SQL Server服務。

  我後來想到了一個原因,就是服務器是Windows 2008 64-bit,所以SQL Server 2008 R2的64-bit版本和32-bit版本寫入註冊表的位置是不同的。哈哈,收工。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章