我需要允许开发DW SQL 2K8R2
环境中的客户端查看和终止进程,但我不想授予VIEW SERVER STATE
此人(他是前 sql dba,被认为是潜在的内部威胁)。
当我运行以下命令时,它返回一行,就好像用户使用他们当前的权限自己运行 sp。
USE [master] GO
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO
CREATE PROCEDURE [dbo].[usp_who] with execute as owner AS BEGIN SET NOCOUNT ON; exec master.dbo.sp_who; END
将“with execute as”更改为“self”(我是系统管理员)会返回相同的结果。我也尝试过以下而不是调用sp_who
,它只返回一行。
select * from sysprocesses 在整个过程的执行过程中,上下文似乎没有切换或持续存在。这更不用说我将如何允许这个人“杀死”进程。
有人对这个看似独特的问题有解决方案或建议吗?