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

SQL Server 登入帳戶管理全攻略:Enterprise Manager 與 T-SQL 雙軌實務

     編輯:關於SqlServer

登入帳戶 是存取 SQL Server 實例的入口,屬伺服器層級安全主體。妥善管理登入、密碼策略、預設資料庫與語言,是資料庫安全基石。本文詳細說明透過 Enterprise Manager (EM) 與系統預存程序 兩種管道的完整操作,並解析 Windows 驗證與 SQL Server 驗證的關鍵差異、孤立使用者處理與權限最小化原則。

管道一:Enterprise Manager 圖形化管理

  1. 展開已註冊伺服器 → 「安全性」資料夾 → 右鍵「登入」→「新增登入」。
  2. 名稱:輸入登入名稱。
    • Windows 驗證:格式為 DOMAIN\User 或 Machine\User;內建群組(如 Administrators)須在「網域」欄填 BUILTIN。
    • SQL Server 驗證:自訂名稱,並設定強式密碼。
  3. 驗證模式:單選「Windows 驗證」或「SQL Server 驗證」。
  4. 預設值:指定預設資料庫(建議非 master)與預設語言。
  5. 按「確定」建立;若需調整伺服器角色(如 sysadmin、securityadmin)或使用者對應,可於屬性頁籤進一步設定。

管道二:T-SQL 系統預存程序

僅適用於 SQL Server 驗證 模式;Windows 登入請用 sp_grantlogin/sp_revokelogin/sp_denylogin。

核心預存程序速查表

程序功能關鍵參數
sp_addlogin建立 SQL 登入@loginame, @passwd, @defdb, @deflanguage, @sid, @encryptopt
sp_droplogin刪除 SQL 登入@loginame
sp_password變更密碼@old, @new, @loginame
sp_defaultdb變更預設資料庫@loginame, @defdb
sp_defaultlanguage變更預設語言@loginame, @language
sp_grantlogin授權 Windows 使用者/群組登入@loginame
sp_revokelogin撤銷 Windows 登入授權@loginame
sp_denylogin明確拒絕 Windows 使用者/群組@loginame
sp_helplogins列出登入資訊[@loginame]

實務範例

-- 建立 SQL 登入,指定 SID 利於跨伺服器同步
EXEC sp_addlogin 'app_user', 'P@ssw0rd!', 'AppDB', 'us_english', 0x0123456789ABCDEF

-- 修改密碼(需舊密碼)
EXEC sp_password 'P@ssw0rd!', 'N3wP@ss!', 'app_user'

-- 授權 Windows 群組
EXEC sp_grantlogin 'CORP\DB_ReadOnly'

-- 查詢所有登入
EXEC sp_helplogins

關鍵限制與注意事項

  • 不可刪除:sa、目前連線的登入、擁有資料庫使用者對應的登入(需先在各資料庫 sp_dropuser)。
  • 名稱規則:最長 128 字元;不可含反斜線(SQL 驗證)、不可為保留字、不可以 #、## 開頭。
  • 權限門檻:上述預存程序需 sysadmin 或 securityadmin 固定伺服器角色成員執行。
  • 密碼原則:SQL Server 2005+ 可啟用 CHECK_POLICY、CHECK_EXPIRATION 對應 Windows 密碼策略;2000 版需自行實作。

孤立使用者 成因與修復

Windows 登入若從 AD/本機移除,對應的 SQL 登入仍殘留於 syslogins,成為「孤立登入」。特徵:同名無法重建、SID 不同導致權限遺失。

修復步驟

  1. 刪除孤立登入:EXEC sp_revokelogin 'DOMAIN\OldUser'(Windows)或 sp_droplogin(SQL)。
  2. 重新建立正確登入(SID 將重新產生)。
  3. 在各資料庫重新對應使用者:EXEC sp_change_users_login 'Auto_Fix', 'UserName', NULL, 'NewLogin'。

最佳實務清單

  • 原則上優先使用 Windows 驗證,利用 AD 群組管理權限,減少密碼管理負擔。
  • SQL 驗證帳戶啟用強制密碼複雜度、定期輪換、鎖定閾值。
  • 遵循最小權限原則:登入預設資料庫設為業務 DB、預設語言依應用需求、僅授予必要伺服器角色。
  • 建立稽核追蹤:啟用登入失敗/成功稽核,定期檢視錯誤日誌與 sp_helplogins 異常帳戶。
  • 跨環境部署時,指定 SID 建立 SQL 登入,確保 AlwaysOn/鏡像/複寫拓撲下使用者對應一致。

結合圖形化工具的直觀性與 T-SQL 的自動化能力,即可建立安全、可審計、易維運的 SQL Server 登入管理體系。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved