如果我在sqlserver2000建立了多个用户和多个角色,我用sql语句删除我建立的所有用户和所有角色,是这样写: delete from sysusers where (uid < 16384 and uid > = 5) or (uid = gid and uid > 0 and issqlrole = 1)因为我是从别的A服务器备份数据,然后恢复到B服务器上,在B服务器上运行脚本时:
delete from sysusers where (uid < 16384 and uid > = 5) or (uid = gid and uid > 0 and issqlrole = 1),
出现错误的提示:
未启用对系统目录的特殊更新。系统管理员必须重新配置 SQL Server 以允许这种操作。如何写sql语句解决这个问题,并且删除用户和角色?
1)删除扩展存储过程
在控制面板→计算机管理→Microsoft SQL Server→(Local……)→数据库→master→扩展存储过程→xp_cmdshell,右击然后删除!
也可以使用命令删除:
sp_dropextendedproc 'xp_cmdshell'
接着在系统分区搜索并删除或改名、移除 xplog70.dll 文件防止恶意者恢复上述配置。
2)删除注册表操作功能
删除上述位置下的:
xp_regaddmultistring(向注册表添加项目)
xp_regdeletekey(向注册表删除一个项)
xp_regdeletevalue(向注册表删除一个键值)
xp_regnumvalues(列举主键下的键值)
xp_regread(读取一主键下的键值)
xp_regremovemultistring(从注册表中删除项目)
xp_regwrite(向注册表中数据)
3)防范跨库查询
每个数据库分别设置一个数据库用户,该用户只能对其拥有的数据库进行查询,禁止其他数据库(包括4个系统数据库Master Model Tempdb Msdb和两个用户数据库 Pubs t Northwind)。
严重级别 16
消息正文
未启用对系统目录的特殊更新。系统管理员必须重新配置 SQL Server 以允许这种操作。解释
在 sp_configure 的 allow updates 系统配置选项设置为 0 时,当 Microsoft® SQL Server™ 检测到有人试图直接修改系统目录时发生该错误。allow updates 系统配置选项允许系统管理员直接更改系统目录。
警告 直接操作系统目录会导致严重的问题。除非您的主要支持提供者指导您修改系统目录,否则请不要这样做。
对策
在修改任何系统目录之前,确保具有有效的数据库备份。
警告 对系统目录的不正确修改会导致数据库损坏或数据丢失。
如果可能,使用 sqlservr 应用程序的 -m 标志以单用户模式重新启动 SQL Server,以便不会发生疏忽性修改。有关更多信息,请参见 sqlservr 应用程序。若要修改系统目录,请使用 osql 实用工具更改 allow updates 系统配置设置。
说明 只有系统管理员能够更改 allow updates 系统配置设置的值。