sp_password (Transact-SQL)
适用范围:SQL Server
添加或更改 SQL Server 登录名的密码。
重要
在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用 ALTER LOGIN 。
语法
sp_password
[ [ @old = ] N'old' ]
, [ @new = ] N'new'
[ , [ @loginame = ] N'loginame' ]
[ ; ]
参数
[ @old = ] N'old'
旧密码。 @old为 sysname,默认值为 NULL
.
[ @new = ] N'new'
新密码。 @new 为 sysname,无默认值。 如果未使用命名参数,则必须指定@old 。
重要
请勿使用 NULL
密码。 请使用强密码。 有关详细信息,请参阅 Strong Passwords。
[ @loginame = ] N'loginame'
受密码更改影响的登录名。 @loginame为 sysname,默认值为 NULL
. @loginame必须已存在,并且只能由 sysadmin 或 securityadmin 固定服务器角色的成员指定。
返回代码值
0
(成功)或 1
(失败)。
注解
sp_password
调用 ALTER LOGIN
。 此语句支持更多选项。 有关更改密码的信息,请参阅 ALTER LOGIN。
sp_password
无法在用户定义的事务中执行。
权限
需要 ALTER ANY LOGIN
权限。 此外, CONTROL SERVER
还需要权限来重置密码而不提供旧密码,或者更改的登录名是否具有 CONTROL SERVER
权限。
主体可更改其自己的密码。
示例
A. 在不知道旧密码的情况下更改登录名的密码
以下示例显示如何使用 ALTER LOGIN
将登录名 Victoria
的密码更改为 B3r1000d#2-36
。 此方法是首选方法。 执行此命令的用户必须具有 CONTROL SERVER
权限。
ALTER LOGIN Victoria
WITH PASSWORD = 'B3r1000d#2-36';
GO
B. 更改密码
以下示例显示如何使用 ALTER LOGIN
将登录名 Victoria
的密码由 B3r1000d#2-36
更改为 V1cteAmanti55imE
。 此方法是首选方法。 用户可以 Victoria
在没有额外权限的情况下执行此命令。 其他用户需要 ALTER ANY LOGIN
权限。
ALTER LOGIN Victoria
WITH PASSWORD = 'V1cteAmanti55imE'
OLD_PASSWORD = 'B3r1000d#2-36';
GO