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 / DECLARE VARIABLES --
 7 set nocount on
 8 declare @self int
 9 select @self = CASE WHEN @loginame is null THEN 1 ELSE 2 END
10
11 -- RESOLVE LOGIN NAME
12 if @loginame is null
13 select @loginame = suser_sname()
14
15 -- CHECK PERMISSIONS (SecurityAdmin per Richard Waymire) --
16 IF (not is_srvrolemember(‘securityadmin‘) = 1)
17 AND not @self = 1
18 begin
19 dbcc auditevent (107, @self, 0, @loginame, NULL, NULL, NULL)
20 raiserror(15210,-1,-1)
21 return (1)
22 end
23 ELSE
24 begin
25 dbcc auditevent (107, @self, 1, @loginame, NULL, NULL, NULL)
26 end
27
28 -- DISALLOW USER TRANSACTION --
29 set implicit_transactions off
30 IF (@@trancount > 0)
31 begin
32 raiserror(15002,-1,-1,‘sp_password‘)
33 return (1)
34 end
35
36 -- RESOLVE LOGIN NAME (disallows nt names)
37 if not exists (select * from master.dbo.syslogins where
38 loginname = @loginame and isntname = 0)
39 begin
40 raiserror(15007,-1,-1,@loginame)
41 return (1)
42 end
43
44 -- IF non-SYSADMIN ATTEMPTING CHANGE TO SYSADMIN, REQUIRE PASSWORD (218078) --
45 if (@self <> 1 AND is_srvrolemember(‘sysadmin‘) = 0 AND exists
46 (SELECT * FROM master.dbo.syslogins WHERE loginname = @loginame and isntname = 0
47 AND sysadmin = 1) )
48 SELECT @self = 1
49
50 -- CHECK OLD PASSWORD IF NEEDED --
51 if (@self = 1 or @old is not null)
52 if not exists (select * from master.dbo.sysxlogins
53 where srvid IS NULL and
54 name = @loginame and
55 ( (@old is null and password is null) or
56 (pwdcompare(@old, password, (CASE WHEN xstatus&2048 = 2048 THEN 1 ELSE 0 END)) = 1) ) )
57 begin
58 raiserror(15211,-1,-1)
59 return (1)
60 end
61
62 -- CHANGE THE PASSWORD --
63 update master.dbo.sysxlogins
64 set password = convert(varbinary(256), pwdencrypt(@new)), xdate2 = getdate(), xstatus = xstatus & (~2048)
65 where name = @loginame and srvid IS NULL
66
67 -- UPDATE PROTECTION TIMESTAMP FOR MASTER DB, TO INDICATE SYSLOGINS CHANGE --
68 exec(‘use master grant all to null‘)
69
70 -- FINALIZATION: RETURN SUCCESS/FAILURE --
71 if @@error <> 0
72 return (1)
73 raiserror(15478,-1,-1)
74 return (0) -- sp_password

命令执行成功后,sa的密码是null,可以去企业管理器-安全-sa -写入新密码;

这次被病毒入侵是因为sa的密码太过简单 123456类似,引以为戒!

时间: 2024-10-28 20:02:17

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

VS2010 项目引用了DLL文件,也写了Using,但是编译时提示:未能找到类型或命名空间名称 &lt;转&gt;

昨天写了一个很小的winform程序,其中引用了自己写的两个dll文件. 本来认为轻松搞定,结果一编译居然提示:未能找到类型或命名空间名称..... 于是删掉两个dll重新引用,再编译结果依旧!很是郁闷. 后来经过调查,终于发现了解决方法: 在项目上点右键-->属性-->应用程序-->目标框架-->修改为.NET Framework 4. 而我原来的设置是.NET Framework 4 Client Profile.问题就出在这里. 以下是MSDN给出的提示: If you ar

mysql 忘记root密码,重置密码,及重置密码后权限问题不能登录的解决方案

由于一段时间没有使用MySQL,忘记了root登录密码. 决定重置下密码,搜索帮助. 参考文档: http://blog.csdn.net/odailidong/article/details/50770988 http://www.cnblogs.com/emanlee/p/4621727.html 重置密码: 1),进入mysql bin目录,目的,使用工具. 2)停止服务,开启忽略登录权限验证步骤. 3)打开另一cmd窗口,以下会忽略密码验证直接登录进MySQL命令行操作,不过此操作限制了

mysql忘记密码时,重置密码

1.以管理员身份运行cmd命令 2.首先进入bin目录,直到看到mysqld.exe文件 3.输入mysqld --skip-grant-tables命令,此命令执行后就再也无法操作,此时需要先在任务管理器中结束mysqld.exe进程 4.然后重新打开一个cmd窗口 5.输入mysql命令,跳过安全检查,直接进入数据库 6.更改root密码,输入 update user set password = password('新密码') where user = 'root' and host =

&quot;Ubuntu Server版安装提示无法找到ISO文件&quot; 解决方案

问题产生: 最近在使用VMWare Workstation虚拟机安装Ubuntu Server操作系统的时候总是遇到无法找到ISO文件的文件,但是我已经在虚拟机的光驱中已经指定好了安装源ISO,如图: 但是在安装菜单中,总是提示无法找到ISO安装镜像文件. 解决方案: 先让虚拟计算机关机,然后选择VMWare虚拟机的启动计算机后进入BIOS,进入BIOS后,设置Boot启动顺序,将CD-ROM设置为第一启动项,然后按下F10保存重启,接着就可以正常的一路安装下去了,这个问题折腾了我半天,在这里m

Nexus第二章:忘记密码后如何重置密码-Windows篇

一.前言 如果是普通账号的密码忘记了还可以通过管理员账号进入设置->Users->选择用户->change passowrd进行修改,如果是管理员admin的密码忘记了该怎么办?接下来我将演示如何重置admin的密码. 二.解决 官网关于这个问题的解决方案:https://support.sonatype.com/hc/en-us/articles/213467158-How-to-reset-a-forgotten-admin-password-in-Nexus-3-x 第一步.安装J

mysql密码忘记后重置密码

之前在centOS里安装了xampp,设置了mysql数据库root密码,今天需要增加个数据库,发现忘记之前设置的密码是什么了.经过一番摸爬滚打,终于搞明白了,注意以下的操作都是以linux的root身份操作的,其它的未测试,目测只要权限允许应该没问题. 先停止mysql/opt/lampp/lampp stopmysql 我用的 sudo /opt/lampp/lampp stop 接着这样启动mysqld/opt/lampp/sbin/mysqld --skip-grant-tables &

Mac下MySQL密码忘记后重置密码

关闭mysql服务器(以下命令都在终端输入) 1,   sudo /usr/local/mysql/support-files/mysql.server stop       也可以在系统偏好里有个MySQL里关闭.2,   cd /usr/local/mysql/bin      (进入目录)3,   sudo su         (获取权限)4,   ./mysqld_safe --skip-grant-tables &       (重启服务器)5,   重开个终端, 6,   alia

VS 项目(c#)引用了 DLL文件,也写了Using,但是编译时提示:未能找到类型或命名空间名称

1. 在项目上点右键-->属性-->应用程序-->目标框架-->修改为.NET Framework 4. 而我原来的设置是.NET Framework 4 Client Profile.问题就出在这里. 以下是MSDN给出的提示: If you are targeting the .NET Framework 4 Client Profile, you cannot reference an assembly that is not in the .NET Framework 4

安装win7 提示 未能找到任何驱动器

原因可能已经是你的mbr已经坏掉了 可以这样解决 1. 在安装界面shift + F10进入命令行模式 2. diskpart 3. list  disk 看看你的硬盘 4. select disk 0 (这个数根据3的结果填写) 5. clean (清空硬盘数据,有重要数据已经要备份) 6. convert mbr OK....................