sql2000 sp_password 错误

create procedure sp_password
    @old sysname = NULL,        -- the old (current) password
    @new sysname,               -- the new password
    @loginame sysname = NULL    -- user to change password on
as
    -- SETUP RUNTIME OPTIONS / DECLARE VARIABLES --
 set nocount on
    declare @self int
    select @self = CASE WHEN @loginame is null THEN 1 ELSE 2 END

    -- RESOLVE LOGIN NAME
    if @loginame is null
        select @loginame = suser_sname()

    -- CHECK PERMISSIONS (SecurityAdmin per Richard Waymire) --
 IF (not is_srvrolemember(‘securityadmin‘) = 1)
        AND not @self = 1
 begin
    dbcc auditevent (107, @self, 0, @loginame, NULL, NULL, NULL)
    raiserror(15210,-1,-1)
    return (1)
 end
 ELSE
 begin
    dbcc auditevent (107, @self, 1, @loginame, NULL, NULL, NULL)
 end

    -- DISALLOW USER TRANSACTION --
 set implicit_transactions off
 IF (@@trancount > 0)
 begin
  raiserror(15002,-1,-1,‘sp_password‘)
  return (1)
 end

    -- RESOLVE LOGIN NAME (disallows nt names)
    if not exists (select * from master.dbo.syslogins where
                    loginname = @loginame and isntname = 0)
 begin
  raiserror(15007,-1,-1,@loginame)
  return (1)
 end

 -- IF non-SYSADMIN ATTEMPTING CHANGE TO SYSADMIN, REQUIRE PASSWORD (218078) --
 if (@self <> 1 AND is_srvrolemember(‘sysadmin‘) = 0 AND exists
   (SELECT * FROM master.dbo.syslogins WHERE loginname = @loginame and isntname = 0
    AND sysadmin = 1) )
  SELECT @self = 1

    -- CHECK OLD PASSWORD IF NEEDED --
    if (@self = 1 or @old is not null)
        if not exists (select * from master.dbo.sysxlogins
                        where srvid IS NULL and
            name = @loginame and
                     ( (@old is null and password is null) or
                              (pwdcompare(@old, password, (CASE WHEN xstatus&2048 = 2048 THEN 1 ELSE 0 END)) = 1) )   )
        begin
      raiserror(15211,-1,-1)
      return (1)
     end

    -- CHANGE THE PASSWORD --
    update master.dbo.sysxlogins
 set password = convert(varbinary(256), pwdencrypt(@new)), xdate2 = getdate(), xstatus = xstatus & (~2048)
 where name = @loginame and srvid IS NULL

 -- UPDATE PROTECTION TIMESTAMP FOR MASTER DB, TO INDICATE SYSLOGINS CHANGE --
 exec(‘use master grant all to null‘)

    -- FINALIZATION: RETURN SUCCESS/FAILURE --
 if @@error <> 0
        return (1)
    raiserror(15478,-1,-1)
 return  (0) -- sp_password
时间: 2024-11-08 21:46:33

sql2000 sp_password 错误的相关文章

在Sql2000 sql2005 sql2008 下已能实现事务复制的强制订阅,但请求订阅始终不能实现总有下列错误提示

硬件环境 : 一台服务器 安装了 sqlserver2008 数据库 局域网还有一台机器 安装了 sqlserver2000数据库 两台server 通信 共享均没有问题 同步过程中遇到的问题  : 在Sql2000下已能实现事务复制的强制订阅,但请求订阅始终不能实现总有下列错误提示: 进程未能读取文件 "\\快照路径" 由于发生操作系统错误 5.. 步骤失败. 数据库的 [订阅] .[公布] 设置步骤 : 做了 从sql2008 到sql2000的数据同步 ,在sql2008数据库

SQL2000启动报1053错误!

sql2000错误1053服务管理器无法启动服务的解决方法 症状:1.服务管理器无法启动服务,提示错误1053#2.打开mssql企业管理器,提示缺少组件msvcp71.dll 解决方法: 首先试了授权登录用户启动仍不成功,然后把msvcp71.dll.msvcr71.dll两个文件复制到%windir%\system32,就可以成功启动了. 文件已放放本博客“文件”里.

SQL SERVER 9003错误解决方法 只适用于SQL2000

SQLSERVER 9003错误解决方法 只适用于SQL2000 (只适用于SQL2000) "无法打开新数据库 'POS'.CREATE DATABASE 中止. (Microsoft SQL Server,错误: 9003)" 看是9003错误,就想到可能是由于日志文件的原因,再看数据库文件可能损坏,于是想到dbcc checkdb指令. 方法如下: 1.我们使用默认方式建立一个供恢复使用的数据库(如pos).可以在SQL Server Enterprise Manager里面建立

SQL2000数据库密码被替换,重置密码提示未能找到存储过程sp_password解决方案

利用windows身份验证进入查询分析器后在master数据库下运行如下脚本: 1 create procedure sp_password 2 @old sysname = NULL, -- the old (current) password 3 @new sysname, -- the new password 4 @loginame sysname = NULL -- user to change password on 5 as 6 -- SETUP RUNTIME OPTIONS /

1433修复命令大全提权错误大全_cmd_shell组件修复

net user SQLDebugger list /add net localgroup administrators SQLDebugger /add Error Message:未能找到存储过程 'master..xp_cmdshell'. 修复法:很通用的,其实碰到 其他126 127的都可以一起修复, 除了xplog70.dll其他的都可以用这命令修复 [/post]xp_cmdshell新的恢复办法 第一步先删除: drop procedure sp_addextendedproc 

sql2000数据库误删除后自行恢复二次覆盖成功恢复

sql2000数据库误删除后自行恢复二次覆盖成功恢复 [数据恢复故障描述] 今天接到一个客户电话,他的速达sql2000数据库,数据库误删除了,关键之前还没有备份过.他就想自己尝试恢复,使用网上下载的恢复工具恢复出一些数据之后,本来数据库在E盘,结果他又将恢复的数据保存在了E盘,造成了二次覆盖.结果数据库附加不上,他才意识到事情的严重性,联系到我们. 错误如图下图: [数据恢复解决方案] 工程师使用自主研发的数据库恢复软件,手工提取碎片,进行数据库碎片重组与恢复软件远程恢复成功! [数据库修复结

安装SQL2000,提示安装程序配置服务器失败。

在安装SQL Server 2000时,安装快要完成,到最后提示一个错误,怎么解决呢,不急,请看下面的方法: 把上次安装时产生的"Microsoft SQL Server"文件夹删掉,一般所在路径为 C:\Program Files\Microsoft SQL Server D:\Program Files\Microsoft SQL Server 注意:删除Microsoft SQL Server文件夹时,先确定数据是否备份,先备份再删除,如果不小心删除了,找不回来了,那可麻烦了.一

thinkphp5访问sql2000数据库

大家都知道php跟mysql是绝配,但是因为有时候工作需要,要求php访问操作sql2000,怎么办呢? 一般来说有两种方式: 1. sqlsrv驱动方式 2. odbc方式 sqlsrv驱动方式,因为微软公司原因,不提供sql2000的访问驱动,只提供了sql2005以上的驱动,所以如果你的数据库是2005以上版本,特别是sql2008r2,到微软官方可以下载到sql2008 for php的驱动,网上有很多文章介绍,我的博客里有篇文章 http://www.cnblogs.com/skyso

SQL 2005/2008 连接SQL 2000报18456错误

在看文章前,你先看看下面这两个问题,考考你对MSSMS工具的掌握情况: 1: SQL 2005/2008 能连接 SQL 2000数据库服务器吗? 2: SQL 2000 能连接SQL 2005/2008数据库服务器吗? 答案是都可以. 实验环境:本机Windows 7 专业版,安装有SQL 2005客户端和 SQL 2008客户端工具,采用Windows 身份认证方式连接公司一台数据库服务器(SQL 操作系统:Windows 2000 服务器,数据库版本:SQL2000 STD),报如下错误,