SQL Server 2005:拒绝访问sp_prepexec

时间:2008-10-22 23:56:33

标签: sql-server

我有一个遭受锁定饥饿的SQL Server 2005数据库,因为一些运行不正常的应用程序通过sp_prepexec运行游标。我想其中一个运行游标的应用程序已“忘记”关闭它。我想拒绝为特定用户访问sp_prepexec,以防止在生产数据库中发生锁定饥饿。

当我尝试以下语法时:

使用master 拒绝在sp_prepexec上执行applicationUser

我必须使用master,因为当我不这样做时:只有当前数据库是master时,才能授予服务器作用域目录视图或系统存储过程或扩展存储过程的权限。

但问题是applicationUser不是master数据库中的用户。所以我收到以下错误: 无法找到用户'applicationUser',因为它不存在或您没有权限。

如果我将该用户添加到master,它似乎不会阻止applicationUser在生产数据库中运行sp_prepexec。

有人可以指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

您是否可以拒绝角色的权限,而不是特定用户的权限?

USE master
GO
DENY EXECUTE ON production.sp_prepexec TO public
GO