资源描述:
《SQL2000修改sa密码时提示【错误2812:未能找到储存过程’sp_passwoed’】的解决方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、SQL2000修改sa密码时提示【错误2812:未能找到储存过程’sp_passwoed’】的解决方法1.我们在用SQL2000数据库经常会遇见忘记sa密码,需要修改sa密码,但是有时候修改sa密码时会提示错误2812:未能找到储存过程’sp_passwoed’2.遇到这种情况的解决方法是:打开开始菜单,找到SQLServer的程序组,选择运行程序组中的“查询分析器”,打开.3.打开“查询分析器”后会有一个登录窗口,因为sa密码不能修改,所以在连接使用的地方选择第一项“windows身份验证”。如果操作系统中有多个SQLServer实例,请在上面SQLServer(S)项中
2、,选择指定示例名。最后点确定,进入查询分析器.4.在打开的窗口中把以下执行语句内容,全部复制到打开的查询分析新窗体中.createproceduresp_password@oldsysname=NULL,--theold(current)password@newsysname,--thenewpassword@loginamesysname=NULL--usertochangepasswordonas--SETUPRUNTIMEOPTIONS/DECLAREVARIABLES--setnocountondeclare@selfintselect@self=CASEWHEN@
3、loginameisnullTHEN1ELSE2END--RESOLVELOGINNAMEif@loginameisnullselect@loginame=suser_sname()--CHECKPERMISSIONS(SecurityAdminperRichardWaymire)--IF(notis_srvrolemember('securityadmin')=1)ANDnot@self=1begindbccauditevent(107,@self,0,@loginame,NULL,NULL,NULL)raiserror(15210,-1,-1)return(1)endE
4、LSEbegindbccauditevent(107,@self,1,@loginame,NULL,NULL,NULL)end--DISALLOWUSERTRANSACTION--setimplicit_transactionsoffIF(@@trancount>0)beginraiserror(15002,-1,-1,'sp_password')return(1)end--RESOLVELOGINNAME(disallowsntnames)ifnotexists(select*frommaster.dbo.sysloginswhereloginname=@loginame
5、andisntname=0)beginraiserror(15007,-1,-1,@loginame)return(1)end--IFnon-SYSADMINATTEMPTINGCHANGETOSYSADMIN,REQUIREPASSWORD(218078)--if(@self<>1ANDis_srvrolemember('sysadmin')=0ANDexists(SELECT*FROMmaster.dbo.sysloginsWHEREloginname=@loginameandisntname=0ANDsysadmin=1))SELECT@self=1--CHECKOL
6、DPASSWORDIFNEEDED--if(@self=1or@oldisnotnull)ifnotexists(select*frommaster.dbo.sysxloginswheresrvidISNULLandname=@loginameand((@oldisnullandpasswordisnull)or(pwdcompare(@old,password,(CASEWHENxstatus&2048=2048THEN1ELSE0END))=1)))beginraiserror(15211,-1,-1)return(1)end--CHANGETHEPASSWORD--u
7、pdatemaster.dbo.sysxloginssetpassword=convert(varbinary(256),pwdencrypt(@new)),xdate2=getdate(),xstatus=xstatus&(~2048)wherename=@loginameandsrvidISNULL--UPDATEPROTECTIONTIMESTAMPFORMASTERDB,TOINDICATESYSLOGINSCHANGE--exec('usemastergrantalltonull')--FINALIZAT