帮你快速理解、总结文档立即下载
文档中心>云数据库 SQL Server>实践教程>tencentdb_ChangeLoginPassword 存储过程使用手册

tencentdb_ChangeLoginPassword 存储过程使用手册

最近更新时间:2026-08-18 17:36:31
我的收藏

功能概述

tencentdb_ChangeLoginPassword 是部署在 SQL Server 实例 master 库中的存储过程,供用户自助修改其名下 SQL Login 的密码。用户无需拥有 sysadmin 角色即可完成密码修改。

调用方式

USE master
GO
EXEC 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