导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

如何通过SQL语句修改SQL Server中指定的登录名的密码?

Crob 2003-11-27 09:13:39
如何通过SQL语句修改SQL Server中指定的登录名的密码?
该使用什么语句?
谢谢!

...全文
518 点赞 收藏 16
写回复
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Crob 2003-11-27
是可以改,但是sp_password使用时操作员一定要用带有System Administrator权限的账号登录才行吗?
回复
txlicenhe 2003-11-27
sp_password
回复
如果是修改当前登陆的用户的密码.

exec sp_password null,'新密码'
回复
exec sp_password '旧密码','新密码','要修改的用户名'
回复
youngby 2003-11-27
sp_password
新增信息 - SQL Server 2000 SP3。

添加或更改 Microsoft® SQL Server™ 登录的密码。

语法
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 必须已经存在,并且只能由 sysadmin 或 securityadmin 固定服务器角色的成员指定。

返回代码值
0(成功)或 1(失败)

注释
SQL Server 密码可包含 1 到 128 个字符,其中可包括任何字母、符号和数字。

新密码以加密的形式更新和存储,因此,任何用户(甚至系统管理员)都不能查看密码。

当 sysadmin 或 securityadmin 固定服务器角色的成员使用带全部三个参数的 sp_password 重新设置他们自己的密码时,审核记录反映的却是他们正在更改别人的密码。

sp_password 不能用于 Microsoft Windows NT® 安全帐户。通过 Windows NT 网络帐户连接到 SQL Server 的用户是由 Windows NT 授权的,因此其密码只能在 Windows NT 中更改。

sp_password 不能在用户定义的事务中执行。

权限
执行权限默认授予 public 角色,以供用户更改自己的登录密码。只有 securityadmin 和 sysadmin 固定服务器角色的成员可更改其他用户的登录密码。

示例
A.无原密码的情况下更改登录密码
下面的示例将登录 Victoria 的密码从空密码更改为“B3r12-36”。

EXEC sp_password NULL, 'B3r12-36', 'Victoria'

B.更改密码
下面的示例将登录 Victoria 的密码从“B3r12-36”更改为“Xj7-IpSca”。

EXEC sp_password 'B3r12-36', 'Xj7-IpSca'

回复
shuiniu 2003-11-27
示例
A.无原密码的情况下更改登录密码
下面的示例将登录 Victoria 的密码更改为 ok。

EXEC sp_password NULL, 'ok', 'Victoria'

B.更改密码
下面的示例将登录 Victoria 的密码由 ok 改为 coffee。

EXEC sp_password 'ok', 'coffee'

回复
shuiniu 2003-11-27
sp_password
添加或更改 Microsoft® SQL Server™ 登录的密码。

语法
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 必须已经存在,并且只能由 sysadmin 固定服务器角色的成员指定。

返回代码值
0(成功)或 1(失败)

注释
SQL Server 密码可包含 1 到 128 个字符,其中可包括任何字母、符号和数字。

新密码以加密的形式更新和存储,因此,任何用户(甚至系统管理员)都不能查看密码。

当 sysadmin 或 securityadmin 固定服务器角色的成员使用带全部三个参数的 sp_password 重新设置他们自己的密码时,审核记录反映的却是他们正在更改别人的密码。

sp_password 不能用于 Microsoft Windows NT® 安全帐户。通过 Windows NT 网络帐户连接到 SQL Server 的用户是由 Windows NT 授权的,因此其密码只能在 Windows NT 中更改。

sp_password 不能在用户定义的事务中执行。

回复
youngby 2003-11-27
exec sp_password
回复
leeboyan 2003-11-27
上述方法我试了,用sql server 验证登录还不成功。能不能再重新建立一个!请问大力,邹建!
回复
pengdali 2003-11-27
将SQLServer改成以Windows身份登录-->企业管理器—>安全性->登陆->右击sa ->属性->去掉密码,或输入新密码
回复
如果连操作系统的administrator密码一齐忘了,就没办法了.

如果只是忘了普通用户密码.可以用:

sp_password null,'新密码','用户名'
回复
如果忘了SA的密码.

你还可以用:

administrator身份验证windows
查询分析器--连接使用,选择"使用windows身份验证"--执行下面的语句:
sp_password null,'新密码','sa'

回复
pengdali 2003-11-27
如果是忘了密码呢?怎样解决?

re:

exec sp_password null,'新密码','sa'
回复
lvltt 2003-11-27
同意邹捷
回复
leeboyan 2003-11-27
如果是忘了密码呢?怎样解决?
回复
Rotaxe 2003-11-27
执行权限默认地授予 public 角色,以供用户更改自己的登录密码。只有 sysadmin 角色的成员可更改其他用户的登录密码。
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告