文档详情

SQLSERVER 修改密码提示.doc

发布:2017-08-01约3.48千字共4页下载文档
文本预览下载声明
SQLSERVER 修改密码提示 “错误 2812: 未能找到存储过程 sp_password。” 解决方法 问题分析:因?SQL?服务器中毒,导致病毒篡改?SQL?用户的密码,病毒为了阻止操作员手工修正(修改)SQL用户的密码,而把存储过程?sp_password?删除,导致的问题。错误如下图所示: ? 解决思路:在系统中重新建一个?sp_password?的存储过程,以便更新现有的?SQL用户密码 步骤: 1、打开查询分析器: ????方法1.?可以依次打开:开始---?运行???,输入命令?isqlw,按回车即可启动查询分析器,如下图所示 ??????????????? ????方法2.?通过开始菜单、程序、Microsoft?SQL?Server、找到“查询分析器”单击打开即可启动 2、登录?查询分析器:在弹出的登录界面中作如下图所示的设置,点“确定”,登录到查询分析器中 3、把下面附录中的重建代码复制到刚才打开的查询分析器中 ? 4、按?F5??执行重建代码 ??????代码分析:允许修改系统数据???---??重建系统内置存储过程???----?恢复为不能直接修改系统数据 ? 5、后记:此方法只是能解决因为没有存储过程而不能修改密码的问题,出现此问题,大多数情况下操作系统已经中毒,这也是为什么更改密码之后,过段时间又不能使用的原因。 可能有的朋友会想,那把密码改得更复杂,让病毒程序不能连接到SQLSERVER?。其实,改密码并不能彻底解决这个问题,有兴趣的朋友可以试试使用?-E?参数,即“使用信任连接而不请求密码”的方式连接到?SQLSERVER??取得SQLSERVER?的所有权限。 ? 注:本文以?SQL?SERVER?2000?界面演示解决此问题的步骤 ? 附录:重建?sp_passsword?存储过程?代码 --?SQL代码开始? sp_configure?allow?updates,?1 RECONFIGURE?WITH?OVERRIDE go use?master go if?exists?(select?*?from?dbo.sysobjects?where?id?=?object_id(N[dbo].[sp_password])?and?OBJECTPROPERTY(id,?NIsProcedure)?=?1) drop?procedure?[dbo].[sp_password] go 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?(disal
显示全部
相似文档