2014-01-25 162 views

回答

-1

很好用禁用的Windows身份驗證重置SQL Server的sa密碼
TNX,當SQL Server忘記SA密碼和Windows身份驗證模式也被禁止,可以使用小程序Asunsoft SQL密碼Geeker重置SA密碼並解鎖您的SA帳戶。在計算機上安裝此程序。停止SQL Server服務,然後按照以下步驟操作:

步驟1:啓動「Asunsoft SQL Password Geeker」。

第2步:點擊「打開文件」按鈕。瀏覽master.mdf文件並將其導入Asunsoft軟件。

第3步:選擇「sa」用戶並單擊「重置」按鈕。

第4步:爲您的SA帳戶鍵入新密碼。點擊「確定」。

最後,關閉Asunsoft SQL密碼Geeker。重新啓動SQL Server服務。然後您可以使用新的SA密碼登錄到SQL Server。

Use Asunsoft SQL Password Geeker to reset SQL Server SA password

+0

-1用於廉價廣告。這個程序和大多數其他人喜歡它可以讓你「查看」你的密碼,除非你付費,否則不會讓你重置它。如果你誠實地提到這一點,我不會投下票。大多數這樣的程序只是運行我在文章中描述的Power Shell腳本。 –

1

我有同樣的問題。試圖用Google搜索它,所有的標準解決方案都不起作用,所以我不得不創造性。基本上我的問題是SA帳戶被禁用,系統也被設置爲只允許通過Windows身份驗證登錄,最後Windows中的管理員帳戶也不是sysadmin角色的成員。所以所有正常的建議不斷給我的權限拒絕錯誤(因爲我沒有權限改變其他帖子告訴我,我應該改變)。

我的解決方案如下記載,僅適用於您需要的部分:

第1階段: - 獲取SSMS在單用戶模式下工作

  1. 打開SQL Server配置管理器(SSCM)
  2. 點擊SQL Server服務
  3. 右鍵單擊SQL Server(MSSQLSERVER)並單擊屬性
  4. 單擊高級選項卡
  5. 查找「啓動參數」並添加以下內容
    • 「-m;」在開始或「-m」末(注意分號,但不包括引號)
    • 小心添加任何空格的解析器是非常挑剔
  6. 按OK
  7. 再次右鍵單擊,然後按下重啓
    • 如果你的服務沒有啓動任何問題,請驗證步​​驟5

第2階段:第1部分: -

  1. 開始SSMS再次啓用SQL Server和Windows身份驗證模式。
    • 這次SSMS啓動時,它將以單用戶模式啓動,這將爲您提供完全訪問權限。
  2. 像往常一樣使用平常的Windows帳戶登錄。
  3. 右鍵單擊服務器節點(第一個/最上面的節點)並選擇屬性。
  4. 點擊安全
  5. 在「服務器認證」下點擊「SQL Server和Windows認證模式」,如果它尚未被選中。
  6. 單擊確定

第2階段:第2部分: - 添加自己進入 「安全」 sysadmin角色

  1. 點擊,然後選擇 「服務器角色」
  2. 右鍵單擊「 sysadmin「角色
  3. 在彈出的窗口中,單擊底部的添加。
  4. 在彈出的窗口中,單擊瀏覽
  5. 找到您的用戶並單擊名稱旁邊的複選框。
  6. 單擊確定 - 這將使您返回到步驟4中的窗口,該窗口現在將您的用戶放在下面的框中。
  7. 單擊確定 - 這會將您返回到步驟3中的窗口,該窗口將您的用戶添加到角色成員列表。
  8. 點擊確定。恭喜,您現在擁有SA用戶的所有權利。

第2步:第3部分:更改SA密碼和啓用帳戶

  1. 雙擊安全。
  2. 雙擊登錄。
  3. 右鍵單擊SA並選擇屬性。
  4. 更改並確認密碼字段(但不要按確定)。
  5. 點擊狀態標籤。
  6. 點擊啓用。
  7. 單擊確定

這是任何重置用戶密碼(系統管理員)的過程。 在這個階段你應該關閉SSMS。

階段3:以多用戶模式重新啓動SSMS。

  1. 按照第1階段所採取的步驟,只需將-m;

階段4:試穿你的大鞋。

在這個階段,您應該能夠從您的登錄啓用或禁用SA帳戶並更改其密碼,同時您應該能夠啓用或禁用使用SQL Server身份驗證登錄的功能。測試這些以確保您擁有必要的權利。

備註:有些教導應該這樣做。我覺得一旦你設置了一個新的SQL服務器實例,系統管理員賬戶應該是第一件事。

有人建議刪除SA帳戶(就我個人而言,我建議只需在其上輸入一個非常強大的密碼)。只要你有一個sysadmin賬戶,這沒問題,但有人必須有一個sysadmin訪問賬戶。這個帳戶不應該被命名爲管理員或其中一些像上帝的變種,原因很明顯。也避免名稱,如您的企業名稱和任何組合等

至於啓用或禁用sql server身份驗證這是一個辯論,我會離開的數據庫管理員。

希望你覺得這有幫助。

+1

這種方法是唯一爲我工作的方法。從命令行運行SQL Server與添加服務啓動的參數(對我來說)不一樣 - 那就是訣竅。你救了我一些新的灰色頭髮。謝謝弗朗西斯。 – PRB

+0

@PRB - 很高興能幫到你。我有一些灰頭髮自己搞清楚了。說刪除SA帳戶以防止黑客攻擊的人有點極端。確實禁用它,但不要刪除。原因就是這個。不容易知道其他帳戶具有SA權限,並且如果其他具有SA權限的帳戶在正常管理期間出於任何原因被刪除,您將陷入麻煩世界。大多數情況下,如果發生這種情況,您可以重新啓用SA帳戶並設置一個新的SA帳戶並再次禁用它(但只有在SA存在的情況下)。所以我從不建議刪除它。 –

2

新的最佳方式:使用PowerShell。 Reset-SqlSaPassword允許管理員通過重置sa密碼,將sysadmin角色添加到現有登錄名,或添加新登錄名(SQL或Windows)並授予登錄系統管理員權限來重新獲得對本地或遠程SQL Server的訪問權限。 Windows管理員權限是必需的。

enter image description here

這是通過停止SQL服務或SQL羣集資源組來實現,然後使用/ MRESET-SqlSaPassword放慢參數,其開始在單用戶模式服務器經由命令行重新啓動SQL,只有允許Reset-SqlSaPassword連接。

一旦服務重新啓動時,執行以下任務:如果它不存在

登錄加入

  • 列表項
  • 登錄啓用
  • 登錄加入到系統管理員角色
  • 登錄解鎖
  • 如果登錄是Windows用戶,則嘗試保留E中的帳戶存在
  • 如果登錄一個SQL登錄:
    • 一個安全的密碼提示將會出現
    • 密碼策略設置爲關閉
    • SQL Server身份驗證設置爲混合模式

爲了使該腳本儘可能便攜,使用了System.Data.SqlClient和Get-WmiObject(與需要故障轉移羣集管理工具或SMO相反)。如果對遠程SQL Server使用此功能,請確保WinRM已配置並可訪問。如果這不可行,請在本地運行腳本。適用於x86和x64。

+0

OMG這是一個奇妙的腳本!我希望我能夠再次超過100次 –