如果我在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.   

    try:MSSQL 注入攻击的防范 攻击者可调用SQL里的Master里的扩展存储过程中的xp_cmdshell来执行系统指令。 
    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)。
      

  2.   

    错误 259
    严重级别 16
    消息正文
    未启用对系统目录的特殊更新。系统管理员必须重新配置 SQL Server 以允许这种操作。解释
    在 sp_configure 的 allow updates 系统配置选项设置为 0 时,当 Microsoft&reg; SQL Server&#8482; 检测到有人试图直接修改系统目录时发生该错误。allow updates 系统配置选项允许系统管理员直接更改系统目录。
    警告  直接操作系统目录会导致严重的问题。除非您的主要支持提供者指导您修改系统目录,否则请不要这样做。
    对策
    在修改任何系统目录之前,确保具有有效的数据库备份。
    警告  对系统目录的不正确修改会导致数据库损坏或数据丢失。
    如果可能,使用 sqlservr 应用程序的 -m 标志以单用户模式重新启动 SQL Server,以便不会发生疏忽性修改。有关更多信息,请参见 sqlservr 应用程序。若要修改系统目录,请使用 osql 实用工具更改 allow updates 系统配置设置。
    说明  只有系统管理员能够更改 allow updates 系统配置设置的值。
      

  3.   

    http://www.langchao.com.cn/erp/lctr/fuwu/www/printpage.asp?BoardID=46&id=12918