sp_password (Transact-SQL)

为 Microsoft SQL Server 登录名添加或更改密码。

重要说明重要提示

后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。请改用 ALTER LOGIN

主题链接图标 Transact-SQL 语法约定

语法

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。

    安全说明安全说明

    不要使用空密码。 请使用强密码。 有关详细信息,请参阅强密码

  • [ @loginame= ] 'login'
    受密码更改影响的登录名。 login 的数据类型为 sysname,默认值为 NULL。 login 必须已经存在,并且只能由 sysadminsecurityadmin 固定服务器角色的成员指定。

返回代码值

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)