问题:
为了安全原因 我想把xp_cmdshell删了
执行命令
exec sp_dropextendedproc 'xp_cmdshell'
但是提示我
无法对 过程 'xp_cmdshell' 执行 删除,因为它不存在,或者您没有所需的权限。
就是说“这个扩展存储过程不存在,或没有权限”
我在网上查了查 说是把public角色的excute权限拒绝了 请问在哪儿设置啊 有那位大虾会啊 帮帮我吧
回答1:
设置sa的public角色的方法是:
打开SQL Server Management Studio
双击“安全性”
双击“登录名”
双击sa(如果是以其他用户名登录的就双击相应的用户名)
点“服务器角色”按钮,就可以看到默认选中了“public”和“sysadmin”两种角色,当然也还可以选择其他的角色,然后点确定即可。
这个时候再执行exec sp_dropextendedproc 'xp_cmdshell'应该是没有问题的。
如果想恢复这个过程,可以使用如下的命令:
EXEC sp_addextendedproc xp_cmdshell, 'xplog70.dll'
回答2:
sorry,没办法了,查询了MSDN
在SQL Server 2005中,sp_dropextendedproc不会删除系统扩展存储过程。但系统管理员应拒绝public角色对扩展存储过程的EXECUTE权限。在SQL Server 2000中,sp_dropextendedproc可用于删除任何扩展存储过程。
不能在事务内部执行 sp_dropextendedproc
回答3:
也就是说扩展存储过程在 2005中不能删除???
真晕了~~~~~~
也不一定,说不定有高人自有办法,敬候之.
回答4:
2005
sp_configure 'xp_cmdshell ',0
reconfigure with override
go
回答5:
不建议你删除,sql自己也会用到,建议如楼上那样,把它关闭就行了,注意设置好权限,不然有权限照样可以再开启
禁用就可以了,建议不要删除
sp_configure 'show advanced options ',1;
GO
RECONFIGURE;
GO
sp_configure 'xp_cmdshell ',0;
GO
RECONFIGURE;
GO
sp_configure 'show advanced options ',0;
GO
RECONFIGURE;
GO