常见问题 SQL Server登录账户认证
SQL Server 账户过期或被禁用怎么查
登录报「账户过期/锁定/禁用」的识别,用 T-SQL 查登录账户状态、解锁与解禁操作。
发布于 2026/11/11
所属频道 SQL Server
简短答案
连接报「登录被禁用/锁定/过期」,都是登录账户状态问题。用 T-SQL 查登录状态,针对性解锁、解禁或改密码。
排查步骤
- 查登录账户状态:
SELECT name, is_disabled, is_expires, is_locked, modify_date
FROM sys.server_principals WHERE type IN ('S','U');
- 解锁被锁的登录(多次输错密码会锁定):
ALTER LOGIN 账户名 WITH PASSWORD = '新密码', MUST_CHANGE = OFF;
-- 或
ALTER LOGIN 账户名 DISABLE; -- 禁用前先确认
ALTER LOGIN 账户名 ENABLE; -- 解禁
- 过期的域账户:在 Windows 侧改账户过期策略,SQL 侧无法直接改域账户有效期。
- 频繁锁定:排查是不是程序用了写死的旧密码。
- 在 SSMS 中:安全性 → 登录名 → 右键属性可查「状态」页,确认是否已禁用。
- 密码策略相关规则以 SQL Server 2022 Developer 条目页核对。
现象对照表
| 现象 | 处理 |
|---|---|
| 登录被锁定 | 改密码解锁 |
| 登录被禁用 | ENABLE 解禁 |
| 域账户过期 | Windows 侧改有效期 |
操作小结
- 先查状态再动手,别盲目改密码。
- 锁定是「多次输错」的结果,根因在程序凭据。
- 域账户过期走 Windows 侧。