欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL Server中使用sp_password重置SA密码实例

程序员文章站 2023-11-30 10:24:58
sql2000的sa密码不能更改的解决方法,在更改sa的密码出现下面的错误: 复制代码 代码如下:error 21776: [sql-dmo] the name ‘dbo...

sql2000的sa密码不能更改的解决方法,在更改sa的密码出现下面的错误:

复制代码 代码如下:
error 21776: [sql-dmo] the name ‘dbo' was not found in the users collection. if the name is a qualified name, use [] to separate various parts of the name, and try again.

解决方法:用sql带的查询管理器连接到sql上,执行:

复制代码 代码如下:
exec sp_password null, ‘xxxxxx', ‘sa'

关于sp_password具体信息如下:

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 不能在用户定义的事务中执行。

权限

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

示例

a.无原密码的情况下更改登录密码
下面的示例将登录 victoria 的密码更改为 ok。

复制代码 代码如下:
exec sp_password null, ‘ok', ‘victoria'

b.更改密码
下面的示例将登录 victoria 的密码由 ok 改为 coffee。
复制代码 代码如下:
exec sp_password ‘ok', ‘coffee'