一、调用方式
USE masterGOEXEC dbo.tencentdb_ChangeLoginPassword @login = N'<目标登录名>', @new_password = N'<新密码>'
二、参数说明
| 参数 | 类型 | 说明 |
| @login | SYSNAME | 要修改密码的 SQL Login 名称 |
| @new_password | NVARCHAR(128) | 新密码 |
三、返回值
| 返回码 | 含义 |
| 0 | 成功 |
| 51001 | 登录名在系统黑名单中 |
| 51002 | 登录名不存在或非 SQL Login |
| 51004 | 不允许修改 sa(系统内置特权账号) |
| 51006 | 密码包含被服务器安全策略禁止的特殊字符 |
| 51007 | 目标登录名是特权服务器角色成员(sysadmin/securityadmin/serveradmin) |
| 51008 | 密码不满足复杂度要求 |
| 51009 | 密码长度超限(> 32位) |
四、密码复杂度要求
| 规则 | 要求 |
| 长度 | 8 ~ 32个字符 |
| 复杂度 | 至少包含字母、数字、符号中的2类 |
| 不含账号名 | 密码中不能包含登录名(不区分大小写) |
| 特殊字符限制 | 不能包含 ]; [; ;[ '] [' 等特殊字符组合 |
五、调用示例
— 成功修改密码EXEC dbo.tencentdb_ChangeLoginPassword @login = N'myapp_user', @new_password = N'NewP@ss2026!'– 返回 0– 尝试修改系统账号(被拒绝)EXEC dbo.tencentdb_ChangeLoginPassword @login = N'tencent_admin', @new_password = N'Test1234!'– Msg 51001: Login is in the system blacklist and cannot be modified.– 密码不满足复杂度(被拒绝)EXEC dbo.tencentdb_ChangeLoginPassword @login = N'myapp_user', @new_password = N'123'– Msg 51008: Password does not meet complexity requirements.
六、注意事项
·仅 SQL Login 可用:Windows 认证账号不支持通过本存储过程修改密码。
·不支持修改特权账号:sysadmin/securityadmin/serveradmin 角色成员不允许修改。
·需要 EXECUTE 权限:你的账号需要对该存储过程拥有 EXECUTE 权限才能调用。
·在 master 库执行:调用前请先 USE master。