杀死用户进程

时间:2013-11-12 02:52:35

标签: sql-server tsql

目前,我拥有SQL Server 2005数据库,我拥有管理员权限,但没有sysadmin权限。

有一个特殊的过程阻止我在桌子上做几件事。

有没有办法杀死用户SQL查询,如果它们是在没有sys管理员权限的情况下通过Web客户端运行的。就我而言,django网站使用pymssql运行查询?

3 个答案:

答案 0 :(得分:1)

出于一个很好的理由,使用“KILL”是角色限制的,并且只有在您了解阻止进程正在执行的操作时才应使用它。如果对执行长时间运行的事务的SPID使用KILL语句,则KILL将在表上启动ROLLBACK(在大型表上可能需要一段时间)以维持DB一致性。声明:

SELECT open_tran FROM master.sys.sysprocesses WHERE SPID=<blocking SPID number>

将为您提供有关流程及其工作的详细信息。或者你可以尝试:

DBCC INPUTBUFFER(<spid>)

找到SPID提交的最后一个语句(虽然我认为您的权限可能不够)。如果确定SPID在块上休眠,则仍然需要升级到processadmin的最小角色才能执行KILL语句。

其他三项建议可以帮助您:

  1. 努力在针对数据库执行的代码中实现锁定提示的使用。
  2. 如果这是一个一致的问题,请让您的DBA评估导致阻塞的陈述,并征求他们的意见。
  3. 接近你的DBA 永远不会伤害,而且一点点糊涂(披萨午餐,下班后饮料等)一两次就能真正发挥作用。他们可能不会授予您所需的权限促销,但他们可以为您创建一个解决方法,如here所述,可以在不更改您的角色的情况下解决您的问题。

答案 1 :(得分:0)

使用命令查看连接sp_who,然后使用命令KILL <SPID>

答案 2 :(得分:0)

如果您正在使用ssms,请尝试关闭/保存您sp或查询开始运行的编辑器窗口

ssms会要求您提交交易,只需按ok

就是这样!