sql错误2812
❶ 错误2812:未能找到存储过程 ‘master.dbo.xp_regread’
在还原数据库的时候出现"错误2812:未能找到存储过程'master.dbo.xp_fileexist'",
分析原因:这是因为某个出于安全考虑把系统扩展存储过程所有的动态连接库都删了
通过搜索查询到下面的解决方
法
解决方法:1、
把恢复数据库需要用到的存储过程个恢复,打开MSsql查询分析器,分别运行下面的两条数据库语句即可.
EXEC sp_addextendedproc xp_dirtree ,@dllname ='xpstar.dll'
EXEC sp_addextendedproc xp_fileexist ,@dllname ='xpstar.dll'
解决方法:2、
重装SQL2000 SQL server 危险存储过程删除与恢复
删除
use master
exec sp_dropextendedproc 'xp_cmdshell'
exec sp_dropextendedproc 'xp_dirtree'
exec sp_dropextendedproc 'xp_enumgroups'
exec sp_dropextendedproc 'xp_fixeddrives'
exec sp_dropextendedproc 'xp_loginconfig'
exec sp_dropextendedproc 'xp_enumerrorlogs'
exec sp_dropextendedproc 'xp_getfiledetails'
exec sp_dropextendedproc 'Sp_OACreate'
exec sp_dropextendedproc 'Sp_OADestroy'
exec sp_dropextendedproc 'Sp_OAGetErrorInfo'
exec sp_dropextendedproc 'Sp_OAGetProperty'
exec sp_dropextendedproc 'Sp_OAMethod'
exec sp_dropextendedproc 'Sp_OASetProperty'
exec sp_dropextendedproc 'Sp_OAStop'
exec sp_dropextendedproc 'Xp_regaddmultistring'
exec sp_dropextendedproc 'Xp_regdeletekey'
exec sp_dropextendedproc 'Xp_regdeletevalue'
exec sp_dropextendedproc 'Xp_regenumvalues'
exec sp_dropextendedproc 'Xp_regread'
exec sp_dropextendedproc 'Xp_regremovemultistring'
exec sp_dropextendedproc 'Xp_regwrite'
drop procere sp_makewebtask
go
恢复
use master
exec sp_addextendedproc xp_cmdshell,'xp_cmdshell.dll'
exec sp_addextendedproc xp_dirtree,'xpstar.dll'
exec sp_addextendedproc xp_enumgroups,'xplog70.dll'
exec sp_addextendedproc xp_fixeddrives,'xpstar.dll'
exec sp_addextendedproc xp_loginconfig,'xplog70.dll'
exec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll'
exec sp_addextendedproc xp_getfiledetails,'xpstar.dll'
exec sp_addextendedproc sp_OACreate,'odsole70.dll'
exec sp_addextendedproc sp_OADestroy,'odsole70.dll'
exec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll'
exec sp_addextendedproc sp_OAGetProperty,'odsole70.dll'
exec sp_addextendedproc sp_OAMethod,'odsole70.dll'
exec sp_addextendedproc sp_OASetProperty,'odsole70.dll'
exec sp_addextendedproc sp_OAStop,'odsole70.dll'
exec sp_addextendedproc xp_regaddmultistring,'xpstar.dll'
exec sp_addextendedproc xp_regdeletekey,'xpstar.dll'
exec sp_addextendedproc xp_regdeletevalue,'xpstar.dll'
exec sp_addextendedproc xp_regenumvalues,'xpstar.dll'
exec sp_addextendedproc xp_regread,'xpstar.dll'
exec sp_addextendedproc xp_regremovemultistring,'xpstar.dll'
exec sp_addextendedproc xp_regwrite,'xpstar.dll'
就是在选择还原设备的时候直接把你的备份数据库的文件的路径填进去,点确定点确定后还是"错误2812:未能找到存储过程'master.dbo.xp_fileexist'",这时候你直接点这个错误对话框的确定按钮即可,然后选择:强制还原数据库,点开始还原数据库等一会就OK了
❷ "修改SQL中SA密码,提示错误2812,未能找到存储过程"SA-PASSWORD",如何解决呢
乌衣巷
刘禹锡
朱雀桥边野草花,
乌衣巷口夕阳斜。
旧时王谢堂前燕,
飞入寻常百姓家。
朱雀桥:在朱雀门外秦淮河上。今南京城外。
花:此为开花之意。作动词。
乌衣巷:对朱雀桥,晋王导、谢安居处。
王谢:具体指东晋时王导和谢安,左右朝廷的两姓豪门望族。
这是一首怀古诗。凭吊东晋时南京秦淮河上朱雀桥和南岸的乌衣巷的繁华鼎盛,而今野草丛生,荒凉残照。感慨沧海桑田,人生多变。以燕栖旧巢唤起人们想象,含而不露;以“野草花”、“夕阳斜”涂抹背景,美而不俗。语虽极浅,味却无限。施补华的《岘佣说诗》评这首诗的三、四句时说:“若作燕子他去,便呆。盖燕子仍入此堂,王谢零落,已化作寻常百姓矣。如此则感慨无穷,用笔极曲。”这首诗据说博得白居易“掉头苦吟,叹赏良久。”自有其深意所在。
下面具体介绍一下王导与谢安:
王导是 东晋初年的宰相,权势显赫,威震朝野,当时有“王与马(指晋帝司马氏)共天下”的歌谣。成语中有“新亭对泣”,表示思念故国的意思,就是说的王导的故事。一次王导与北方逃难过江建立 东晋的同僚在南京郊外新亭(又名劳劳亭)饮宴。座中周侯岂页叹息地说:“风景不殊,正自有山河之异”,发出了山河沦陷的感叹(当时北方领土沦陷在匈奴人刘曜之手),于是在座的宾客都 相视流泪。王导见此情景,愀然变色地说:“当共戮力王室(勉力国事),克复神州(收复中原失地),何至作楚囚相对(何至于那样没有出息作当年被俘的楚国囚犯那样相对哭泣呢)?”王导 的话慷憾激昂,批评了在座同僚消极悲观的情绪。虽然只有这么简短的几句话,却把王导为人鹤立鸡群,见识不凡的形象生动地表现出来(事见《世说新语》)。
诗词中提到的“谢”,就是 谢安,别名安石,他是晋孝武帝的丞相,人称谢太傅,功勋卓着,曾一度辞官退隐浙江会稽东山,当时曾有“安石不出,将如苍生何”,足见他的威望之高。后复出主持大局,因此又有“东山再 起”的成语,表示免职以后再度掌权的意思。后秦符坚扬言投鞭可使长江断流,率领大军进驻淝水北岸,威逼东晋,朝野震恐。谢安时任征讨大都督,他从容调度,终于大破符坚、是为军事上以 少胜多的“淝水之战”。据说他侄儿谢玄从前线送回报捷书信,可是谢安得信后面上却了无喜色,对弈如故。及至下完棋返回内室,终于压不住内心喜悦,鞋后跟过门槛时折掉,他高兴得竟然没 有察觉,其镇静自若,儒雅风流,在历史上一直传为佳话。
王导、谢安与书法都大有渊源,两人都是东晋的大书法家。王导是王羲之叔父,擅长行草,《书断》称他的书法是“风棱载蓄,高 致有余,类贾勇之武士,等相惊之戏鱼”。意思是说他的草书写得既饱含棱棱风骨,又高雅而有韵致;既有武士的雄伟,又如戏鱼般的灵活娇曳。王羲之书法得以成名,与王导指点是有关系的。
在东晋书坛上,王导不仅是政治上的领袖,身居丞相职位,而且在书坛上他也是名列前矛。他闲下来就喜欢弄弄笔头,挥毫不止,他学的是钟繇、卫笔法,即使在西晋末年、天下大乱,王 室南渡时刻,王导也没有忘记把钟繇的《尚书·宣示帖》藏在衣带里带到南方。足见他对钟繇书法的爱好了。
至于谢安,他是参加王羲之兰亭集会的一员,平日与王羲之诗酒唱和,书法切磋 。据《书断》所述,谢安学写正、草书体就是就教于王右军。《述志赋》称谢安“善草正,方圆自穷”。谢安的草书在东晋是很有名气的,有副对联写道:“谢草郑兰燕桂树,唐诗晋字汉文章” ,其中的“谢草”,看来就是指的谢安草书,又如宋代词人、书法家姜夔曾说过:《兰亭记》及右军诸贴第一,谢安石(即谢安)、大令诸帖次之,颜、柳、苏、米,亦后世之可观者。”由此可 知谢安书法、尤其行草书的知名度是仅次王羲之的了。
❸ 修改SQL中SA密码,提示错误2812,未能找到存储过程"SA-PASSWORD",请问如何修改 你是怎么处理的啊
你进入数据库,然后点数据库里有个平安,然后找到一个用户名SA,接着点开,然后有个强迫修正密码,你直接输两遍你要输入的密码,就可以了,然后断开数据库,重新衔接,留意效劳器,这个效劳器是你刚刚登陆出来修正的效劳器,然后用用户名密码登陆,试试吧 。
❹ 服务器在数据库还原时经常出现“错误0:无法装载DLL Microsoft提示你请误随意操作sql数据库以免对起数据库
打开查询分析器,执行以下语句:
drop procere sp_OACreate
drop procere xp_dirtree
drop procere xp_regwrite
exec sp_addextendedproc N' sp_OACreate', N'odsole70.dll'
exec sp_addextendedproc N' xp_dirtree', N' xpstar.dll'
exec sp_addextendedproc 'xp_regwrite', 'xpstar.dll'
可能会再次出现这样的错误:未能找到存储过程 master.dbo.xp_dirtree|错误2812
再次打开查询分析器,执行以下语句:
use master
EXEC sp_addextendedproc xp_dirtree ,@dllname ='xpstar.dll'
或者
因为系统原因,导自己没有安装好SQL的MDAC,所以只要将这个装好就可以了,具体方法如下:
1、在系统中找c:\windows\inf下的mdac.inf(这里以windows2003为例),点击安装。
2、在安装过程会提示使用系统光盘,如果没有系统光盘也没有关系,只需使用查找文件功能,将安装过程中所需要的文件找到,然后再指定其路径就可以了,直到安装完成!
3、完成后,为可了保险起见,可以启用系统!
❺ sql2K的sa密码老是都被篡改每次执行完改的时候一段时间后又出现这个2812错误未找到储存数据sp_password
估计你被黑了,最好的办法是检查一下是程序\系统或数据库出的问题.
如果数据库方面可以直接禁用sa帐号,并且禁用外网访问数据库
系统问题可以找运维去检查了
程序问题只能靠你自己了
❻ 什么原因造成SQL2000数据库在企业管理器中修改sa密码的时提示:错误2812 未能找到储存过程 sp_password'
原因可能是由于黑客木马侵入,将sa密码更改,并删除了此存储过程,由此阻碍对密码的修改。解决方案就是重建这个存储过程。
操作过程如下:打开“企业管理器”在系统数据库“master”中找到“存储过程”,然后右击“新建存储过程”。将完整代码如下:
create procere 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
GO
新建好后重新修改下密码即可。
❼ 为什么SQL2005在新建复制找不到存储过程提示错误:2812 的解决方法
一台服务器重装系统后,用附加表再配置同步复制的时候出错:
sql server 无法创建发布 找不到存储过程 错误 2812
在SQL SERVER 2005中,有数据库DB1,在A服务器上。由于要更换服务器,要把数据库DB1迁移到B服务器上。而DB1是用于同步复制的。粗心的你没有把同步复制(发布和订阅)删掉,就直接把DB1.mdf和DB1_log.ldf两个文件到B服务器上附加。附加成功了,原来的程序都能连接上,你以为大功告成。但是,几天过后,当你想把服务器重新同步复制,以作实时备份时,你发现自己的倒霉时刻到了。SQL SERVER 2005 像病了一样,只提示:“找不到存储过程’’…错误:2812”。
如果你的经历与以下的不完全一致,那么这篇文章可能也值得你参考。
但如果你的经历恰好一样,而且你在Google或Bai上苦寻答案而不觅,那么,这篇文章或者能帮你一把。
如果数据库迁移后,数据并没有更新过。那么你的想法是把这个该死的数据库分离,然后再重新把去掉同步复制的干净的数据库迁移过来。但是,如果你的新数据库已经投入生产,那么,请参考我的方法:
打开B服务器上的DB1数据库的系统表,你会发现有12个表在里面。这12个表就是因同步复制而产生的,包括:
表/视图
有记录
复制必需
Mspeer_lsns
Mspeer_request
Mspeer_response
Mspub_identity_range
Sysarticlecolumns
有
是
Sysarticles
有
是
Sysarticlesupdates
是
syspublications
有
是
Sysreplservers
有
Sysschemaarticles
是
Syssubscriptions
有
是
systranschemas
sysextendedarticlesview
是
问题就出现在这里了。这12 个系统表和1个视图是因同步复制而生的,如果没有发生同步复制,他们是不会出现的。我们把mdf和ldf文件直接迁移过来,数据库里面的这些系统表和视图也随之而来了。
不能简单的把这12个系统表和1个视图删掉,这样同样不行。在经过了长时间的摸索后,我发现了问题的真正所在。
我们看一下系统表 sysreplservers的内容,有两列:
Srvname
Srvid
旧服务器名称
0
终于找到了问题所在了。我们把该表的记录删除。
然后随便发布一次。
再把该发布删除。
至此,该数据库中的陈旧同步复制信息已经去除,数据库重新变得洁净可爱
❽ SQL数据库中删除数据提示错误“Could not find stored procere”
意思是 delete_meas_alarm_level 这个存储过程 的第88行 的 update_alarm_level 这个过程不存在了
❾ 修改SQL中SA密码,提示错误2812,未能找到存储过程"SA-PASSWORD",如何修改
你进入数据库,然后点数据库里有个安全,然后找到一个用户名SA,接着点开,然后有个强制修改密码,你直接输两遍你要输入的密码,就可以了,然后断开数据库,重新连接,注意服务器,这个服务器是你刚刚登陆进去修改的服务器,然后用用户名密码登陆,试试吧。
❿ sql2000的sa密码每天重启电脑都被篡改!改的时候2812错误!2812错误我知道怎么解决!
中病毒sa密码被篡改然后删除修改密码的存储过程,你查询下sp_password是不是不存在了,你可以先备份数据库(为了避免数据丢失),然后新建改存储过程(见下面代码)。修改为SA密码后,查杀下病毒,实在不行重装系统,重新附加数据库或者用备份还原
--SQL代码开始
sp_configure'allowupdates',1
RECONFIGUREWITHOVERRIDE
go
usemaster
go
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[sp_password]')andOBJECTPROPERTY(id,N'IsProcere')=1)
dropprocere[dbo].[sp_password]
go
createproceresp_password
@oldsysname=NULL,--theold(current)password
@newsysname,--thenewpassword
@loginamesysname=NULL--usertochangepasswordon
as
--SETUPRUNTIMEOPTIONS/DECLAREVARIABLES--
setnocounton
declare@selfint
select@self=CASEWHEN@loginameisnullTHEN1ELSE2END
--RESOLVELOGINNAME
if@loginameisnull
select@loginame=suser_sname()
--CHECKPERMISSIONS()--
IF(notis_srvrolemember('securityadmin')=1)
ANDnot@self=1
begin
dbccauditevent(107,@self,0,@loginame,NULL,NULL,NULL)
raiserror(15210,-1,-1)
return(1)
end
ELSE
begin
dbccauditevent(107,@self,1,@loginame,NULL,NULL,NULL)
end
--DISALLOWUSERTRANSACTION--
setimplicit_transactionsoff
IF(@@trancount>0)
begin
raiserror(15002,-1,-1,'sp_password')
return(1)
end
--RESOLVELOGINNAME(disallowsntnames)
ifnotexists(select*frommaster.dbo.sysloginswhere
loginname=@loginameandisntname=0)
begin
raiserror(15007,-1,-1,@loginame)
return(1)
end
--IFnon-,REQUIREPASSWORD(218078)--
if(@self<>1ANDis_srvrolemember('sysadmin')=0ANDexists
(SELECT*FROMmaster.dbo.sysloginsWHEREloginname=@loginameandisntname=0
ANDsysadmin=1))
SELECT@self=1
--CHECKOLDPASSWORDIFNEEDED--
if(@self=1or@oldisnotnull)
ifnotexists(select*frommaster.dbo.sysxlogins
wheresrvidISNULLand
name=@loginameand
((@oldisnullandpasswordisnull)or
(pwdcompare(@old,password,(CASEWHENxstatus&2048=2048THEN1ELSE0END))=1)))
begin
raiserror(15211,-1,-1)
return(1)
end
--CHANGETHEPASSWORD--
updatemaster.dbo.sysxlogins
setpassword=convert(varbinary(256),pwdencrypt(@new)),xdate2=getdate(),xstatus=xstatus&(~2048)
wherename=@loginameandsrvidISNULL
--,TOINDICATESYSLOGINSCHANGE--
exec('usemastergrantalltonull')
--FINALIZATION:RETURNSUCCESS/FAILURE--
if@@error<>0
return(1)
raiserror(15478,-1,-1)
return(0)--sp_password
GO
sp_configure'allowupdates',0
RECONFIGUREWITHOVERRIDE
--SQL代码结束