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

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'

(0)

相关推荐

  • 用户"sa"登陆失败 SQLServer 错误18456的解决方法

    用windows账号还是可以登录的. 查找问题的过程: 第一步: 启动所有与SQL有关的服务,问题依旧: 第二步: 查看windows防火墙,被默认启动了,不启动选择项被Disabled.两个提示"由于安全考虑,某些设置由组策略控制""Windows防火墙正在使用您的域设置",先用gpedit.msc打组策略编辑器,机算机配置--管理模板--网络--网络连接--Windows防火墙--标准配置文件,查看右边各选项属性,都是未配置状态,问题不在这里. 另外一个提示中提

  • SQLServer更改sa用户名的方法

    首先,在企业管理器的查询分析器中运行以下代码(注意,进入查询分析器的用户名的角色要为System administrator,而且是各个数据库的db owner): 复制代码 代码如下: sp_configure 'allow updates', 1 go RECONFIGURE WITH OVERRIDE go 然后再运行以下代码 复制代码 代码如下: update sysxlogins set name='你要改成的名字' where sid=0x01 update sysxlogins s

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

    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上,执行: 复

  • sql server 中合并某个字段值的实例

    有表如下: 如何获得如下结果: 解法 使用xml转换 代码如下: 复制代码 代码如下: CREATE TABLE body ( ID int, BODY nvarchar(20) ) go INSERT INTO body VALUES(1,'aaaa') INSERT INTO body VALUES(2,'bbbb') INSERT INTO body VALUES(1,'cccccc') INSERT INTO body VALUES(3,'ddddd') go SELECT * FROM

  • SQL server中提示对象名无效的解决方法

    产生SQL对象名无效的问题大多原因是由于数据迁移导致的,下面我们给出解决方法. 在使用数据库的过程中,经常会遇到数据库迁移或者数据迁移的问题,或者有突然的数据库损坏,这时需要从数据库的备份中直接恢复.但是,此时会出现问题,这里说明几种常见问题的解决方法. 一.孤立用户的问题 比如,以前的数据库的很多表是用户test建立的,但是当我们恢复数据库后,test用户此时就成了孤立用户,没有与之对应的登陆用户名,哪怕你建立了一个test登录用户名,而且是以前的用户密码,用该用户登录后同样没办法操作以前属于

  • 将Session值储存于SQL Server中

    一般情况下,我们喜欢使用Session储存我们的变量.Asp.Net提供了下面一些方法储存Session的值:  InProc  State Server  SQL Server  "InProc"表示我们使用传统ASP一样的方法储存Session的值,而且"State Server"则表示使用另外一台主机来储存Session的值.当然我们也能使用SQL Server储存值,我们这篇文章就专门用于讲解这种方法.  运行InstallSqlState.sql文件  首

  • 在SQL Server中使用命令调用SSIS包的具体方法

    具体操作步骤如下: 1.首先,当然是要在Business Intelligence中设计好包,并调试通过. 2.然后,有两种方式可以在SQL Server中使用命令运行SSIS包 第一种是直接执行ssis包文件,命令如: exec xp_cmdshell 'dtexec /f "c:\test.dtsx"' 第二种是将包文件发布或者导入到Integration Services服务中,然后再执行. 发布包是在Business Intelligence中生成发布文件,并发布到Integr

  • sql server中错误日志errorlog的深入讲解

    一 .概述 SQL Server 将某些系统事件和用户定义事件记录到 SQL Server 错误日志和 Microsoft Windows 应用程序日志中. 这两种日志都会自动给所有记录事件加上时间戳. 使用 SQL Server 错误日志中的信息可以解决SQL Server的相关问题. 查看 SQL Server 错误日志可以确保进程(例如,备份和还原操作.批处理命令或其他脚本和进程)成功完成. 此功能可用于帮助检测任何当前或潜在的问题领域,包括自动恢复消息(尤其是在 SQL Server 实

  • SQL Server中函数、存储过程与触发器的用法

    一.函数 函数分为(1)系统函数,(2)自定义函数. 其中自定义函数又可以分为(1)标量值函数(返回单个值),(2)表值函数(返回查询结果) 本文主要介绍自定义函数的使用. (1)编写一个函数求该银行的金额总和 create function GetSumCardMoney() returns money as begin declare @AllMOney money select @AllMOney = (select SUM(CardMoney) from BankCard) return

  • SQL Server 中 RAISERROR 的用法详细介绍

    SQL Server 中 RAISERROR 的用法 raiserror 的作用: raiserror 是用于抛出一个错误.[ 以下资料来源于sql server 2005的帮助 ] 其语法如下: RAISERROR ( { msg_id | msg_str | @local_variable } { ,severity ,state } [ ,argument [ ,...n ] ] ) [ WITH option [ ,...n ] ] 简要说明一下: 第一个参数:{ msg_id | ms

  • 关于SQL Server中bit类型字段增删查改的一些事

    前言 本文主要给大家介绍了关于SQL Server中bit类型字段增删查改的一些事,话说BIT类型字段之前,先看"诡异"的一幕,执行Update成功,但是查询出来的结果依然是1,而不是Update的2 当别人问起我来的时候,本人当时也是处于懵逼状态的,后面联想具体的业务突然想起来这个字段是bit类型的 如果把这个现象跟BIT类型字段连续起来就不觉得奇怪了. 废话不多,直接上代码看结果就好了. 先建一个测试表 CREATE TABLE TestBIT ( Id INT IDENTITY(

  • SQL Server中利用正则表达式替换字符串的方法

    建立正则替换函数,利用了OLE对象,以下是函数代码: --如果存在则删除原有函数 IF OBJECT_ID(N'dbo.RegexReplace') IS NOT NULL DROP FUNCTION dbo.RegexReplace GO --开始创建正则替换函数 CREATE FUNCTION dbo.RegexReplace ( @string VARCHAR(MAX), --被替换的字符串 @pattern VARCHAR(255), --替换模板 @replacestr VARCHAR

随机推荐