首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server sp_password 重設 sa 密碼完整指南:語法、參數、權限與實戰案例

     編輯:關於SqlServer

sp_password 是 SQL Server 內建預存程序,用於新增/變更登入密碼,適用於無法透過 SSMS 介面修改的情況 (如 SQL 2000、特殊權限場景)。

語法與參數

sp_password 
    [ @old = ] 'old_password', 
    [ @new = ] 'new_password', 
    [ @loginame = ] 'login_name' ]
參數類型預設說明
@oldsysnameNULL舊密碼,變更自身密碼時必填;sysadmin 重設他人密碼可為 NULL
@newsysname無新密碼 (1-128 字元,含字母、符號、數字)
@loginamesysnameNULL目標登入名,僅 sysadmin/securityadmin 可指定他人

回傳碼

  • 0 = 成功
  • 1 = 失敗

實戰案例

1. 重設 sa 密碼 (無舊密碼,需 sysadmin)

EXEC sp_password NULL, 'NewStr0ngP@ssw0rd', 'sa';

2. 一般使用者變更自身密碼

EXEC sp_password 'OldP@ss', 'NewP@ss'; -- @loginame 預設為目前登入

3. sysadmin 重設他人密碼

EXEC sp_password NULL, 'ResetP@ss', 'app_user';

關鍵限制與注意事項

  • 不可用於 Windows 整合驗證帳號:密碼由 AD 管理,需在 AD 修改。
  • 不可在使用者交易中執行:BEGIN TRAN...EXEC sp_password...COMMIT 會失敗。
  • 密碼加密儲存:任何人 (含 sysadmin) 皆無法檢視明文密碼。
  • 審計記錄特殊行為:sysadmin 用三參數重設自身密碼,審計顯示為「變更他人密碼」。
  • SQL 2005+ 建議用 ALTER LOGIN:ALTER LOGIN sa WITH PASSWORD = 'NewP@ss' UNLOCK; 功能更完整 (解鎖、強制變更、雜湊演算法升級)。

權限矩陣

現代環境優先使用 ALTER LOGIN,sp_password 保留給舊版本相容與特定自動化腳本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
角色變更自身密碼變更他人密碼
public✓ (需舊密碼)✗
securityadmin✓✓
sysadmin✓✓