Sql-Server

使用 LocalAdmin 成為 sysadmin SQL Server

  • March 10, 2020

我是我機器上的本地管理員。安裝 SQL Server 時沒有添加我的帳戶,我不想重新安裝 SQL Server。它一直有效,直到我嘗試通過 SQLCMD 或 SSMS 記錄和執行命令。我收到錯誤消息

使用者登錄失敗<Machine_Name>/<Windows Name>。原因:伺服器處於單使用者模式。目前只有一位管理員可以連接…

我找到了這個部落格,並在 m 開關後添加了應用程序名稱。但是沒有骰子,我仍然得到上述錯誤。我猜使用者帳戶看起來不錯,我是管理員。

此外,我必須以管理員身份啟動 cmd 提示符才能在單使用者模式下啟動 sqlserver,否則我無法訪問實例正在使用的日誌文件,這給了我一個錯誤。所以我以管理員身份執行 cmd 提示符。但是,我仍然是嘗試執行 SQLCMD 或 SSMS 的同一管理員。它不應該告訴我已經有一個管理員登錄,因為我就是那個管理員。我錯過了什麼?

這是在 SQLExpress 上。

對於這種情況,我們使用 PSExec 實用程序來重新獲得對 SQL 伺服器的訪問權限。

您可以從此處下載該實用程序,將 exe 文件解壓縮並複製到驅動器位置,您可以從該位置執行以下命令。

下載後,您需要使用管理員打開 cmd 並在下面執行:

PsExec -s -i "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe"

上面的路徑可能會有所不同,例如對於我們的 SQL 2k8 之一,我們發現路徑是:

"C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe"

這將使您通過伺服器 Windows 身份驗證連接到目前,並且使用者名被硬編碼為 NT AUTHORITY\SYSTEM。

您可以從這裡創建所需的登錄:

我在第一次使用DAC(專用管理員連接)時做了類似的事情。 就我而言,事實證明我使用 SSMS 來獲取唯一的 DAC,我有一段時間沒有意識到這一點。

例如,如果您使用 SSMS 抓取了連接,則可以關閉並重新打開 SSMS 以釋放連接。

作為最後的手段重新啟動伺服器,將釋放任何有 DAC 連接。

另請參閱“在單使用者模式下啟動 SQL Server 實例時,請先停止 SQL Server 代理服務。否則,SQL Server 代理可能會先連接並阻止您作為第二個使用者連接。”

引用自:https://dba.stackexchange.com/questions/104032