sp_password (Transact-SQL)
适用于:SQL Server
添加或更改Microsoft SQL Server 登录名的密码。
重要
在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用 ALTER LOGIN 。
语法
sp_password [ [ @old = ] 'old_password' , ]
{ [ @new =] 'new_password' }
[ , [ @loginame = ] 'login' ]
参数
[ @old = ] 'old_password'
旧密码。 old_password为 sysname,默认值为 NULL。
[ @new = ] 'new_password'
新密码。 new_password为 sysname,无默认值。 如果未使用命名参数,则必须指定old_password。
重要
请勿使用 NULL 密码。 请使用强密码。 有关详细信息,请参阅 Strong Passwords。
[ @loginame = ] 'login'
受密码更改影响的登录名。 login 的数据类型为 sysname,默认值为 NULL。 登录必须已存在,并且只能由 sysadmin 或 securityadmin 固定服务器角色的成员指定。
返回代码值
0(成功)或 1(失败)
注解
sp_password调用 ALTER LOGIN。 此语句支持附加选项。 有关更改密码的信息,请参阅 ALTER LOGIN (Transact-SQL)。
不能在用户定义的事务中执行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
另请参阅
安全存储过程 (Transact-SQL)
ALTER LOGIN (Transact-SQL)
CREATE LOGIN (Transact-SQL)
sp_addlogin (Transact-SQL)
sp_adduser (Transact-SQL)
sp_grantlogin (Transact-SQL)
sp_revokelogin (Transact-SQL)
系统存储过程 (Transact-SQL)