![將目前管理員使用者新增至 SQL Server Express 2008](https://rvso.com/image/515069/%E5%B0%87%E7%9B%AE%E5%89%8D%E7%AE%A1%E7%90%86%E5%93%A1%E4%BD%BF%E7%94%A8%E8%80%85%E6%96%B0%E5%A2%9E%E8%87%B3%20SQL%20Server%20Express%202008.png)
我已成功(在“eksperiments”中)從 SQL Express 實例中刪除了我的兩個 Windows 使用者。我現在以 Windows 管理員身份登錄,並重新建立了相應的 SQL 登入名,但我無法指派 sysadmin 權限。我收到錯誤:
使用者無權執行此操作。 (微軟 SQL Server,錯誤:15247)
如果管理員不能做到這一點,我是否應該開始尋找小動物來犧牲?
答案1
您的 Windows 管理員帳戶可能沒有管理員權限 - 這取決於您的設定。您需要使用具有權限的帳戶登錄,或以 sa 使用者身分登入。
如果您沒有啟用 SQL 身份驗證,您可以透過註冊表調整來啟動它。我認為這是正確的關鍵:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<<instance name>>\MSSQLServer\Loginmode
它應該設定為混合模式(2),但當然您仍然需要知道安裝實例時的 sa 密碼是什麼。
答案2
CodePlex 上有一個腳本,可以自動從失去本機 SQL Server 執行個體的系統管理員權限中恢復,前提是您有權存取 Windows 管理員帳戶:
答案3
如果您更願意使用 SSMS 而不是 sqlcmd/osql,請更新 SQL Server 實例的服務的啟動權限以包含「-m」或 -m「Microsoft SQL Server Management Studio - 查詢」。
然後使用此命令透過命令列進行連接:
sqlcmd -E -S HOSTNAME\INSTANCENAME
或透過 SSMS 連接到:
\\.\pipe\hostname\instancename\sql\query
並使用它來添加您的登入名稱和角色:
CREATE LOGIN [domain\username] FROM WINDOWS;
GO
EXEC sp_addsrvrolemember 'domain\username', 'sysadmin';
GO
之後您可以刪除服務上的“-m”選項並正常啟動它。