1. 程式人生 > >忘記 SQL Server 管理員密碼的處理

忘記 SQL Server 管理員密碼的處理

如果忘記 SQL Server 管理員密碼,可以使用下面的方式處理  1. 使用 SQL Server 伺服器計算機本地 Administrators 組的任何成員登入到 SQL Server 伺服器  2. 確定忘記管理員密碼的 SQL Server 服務  可以在服務(services.msc)裡面檢視,或者使用下面的 Powershell 命令  Get-Service | ? DisplayName -Like ‘SQL Server (*)’  3. 停止 SQL Server 服務  4. 以單使用者模式(/m引數)啟動 SQL Server 服務  使用引數 /m 啟動,在管理員命令提示符下執行  net start start mssqlserver /m  5. 使用 slqcmd 完成管理員解鎖  在單使用者模式下啟動 SQL Server 可使計算機本地 Administrators 組的任何成員作為 sysadmin 固定伺服器角色的成員連線到 SQL Server 例項  6. 完成後停止 SQL Server 服務,並以正常方式啟動 SQL Servr 和相關服務即可

Powershell 通用指令碼 – 將當前登入帳號加入 SQL Server 的 sysadmin 成員

# 指令碼需要在管理員命令提示符下的 Powrshell 中執行 # 可以通過下面這個命令進入到管理員命令提示符下的 Powershell # Powershell Start-Process Powershell.exe -Verb runas  ServiceName=′mssqlServiceName=′mssqlreportdb’ # 定義要操作的 SQL Server 服務  Service=Get−ServiceService=Get−ServiceServiceName # 停止 SQL Server 服務並以單使用者模式啟動

  net.exe stop ((Service.Name)  net.exe start ((Service.Name) /m # 當前使用者加入 SQL Server 的 sysadmin 成員  Instance=′.\'+(Instance=′.\'+(Service.Name -Split ‘$’)[1]  If( -Not Instance)$Instance=‘.′Instance)$Instance=‘.′user = [Environment]::UserDomainName + ‘\’ + [Environment]::UserName  sql="CREATELOGIN[sql="CREATELOGIN[user] FROM WINDOWS; EXEC sp_addsrvrolemember [user],sysadmin”sqlcmd.exe−Suser],sysadmin”sqlcmd.exe−SInstance -Q $sql # 以正常方式啟動 SQL Server 服務(依賴的服務需要手工檢查啟動)
  net.exe stop ((Service.Name)  net.exe start ((Service.Name)

其他說明  可以讓您重新獲得訪問許可權的一種方法是重新安裝 SQL Server 並將所有資料庫附加到新例項。這種解決方案很耗時,並且若要恢復登入名,可能還需要從備份中還原 master 資料庫。如果 master 資料庫的備份較舊,則它可能未包含所有資訊。如果 master 資料庫的備份較新,則它可能與前一個例項具有同樣的登入名;因此管理員仍將被鎖定。  (此文章在個人微信公共號 ZJCXC 同發)