无法找到对象'reportsProc',因为它不存在或您没有权限

时间:2018-11-22 14:09:41

标签: sql-server-2008 stored-procedures permissions ssms

我们创建了这样的过程:

CREATE PROCEDURE [dbo].[reportsProc]
    @IstGroup INT,
    ...
AS
BEGIN
    SET NOCOUNT ON;

    IF @IstGroup = 0
    BEGIN
        SELECT K.*
        FROM V_xyz K
    END
    ELSE
    BEGIN
        SELECT K.*
        FROM V_xyz2 K


    END
END

GRANT EXECUTE ON [dbo].[reportsProc] TO [user_abz]

注意:V_xyz和V_xyz2是视图。

如果用户尝试执行该过程,则存在SQL Server异常:

  

找不到对象'reportsProc',因为它不存在或您没有权限

我们尝试授予某些引用对象的执行权限,但这不起作用。

如果我们将用户user_abz添加到数据库角色db_owner,它将起作用。但是我们不希望用户拥有太多权限。

如果我们将用户user_abz添加到数据库角色db_ddladmindb_datareaderdb_datawriter中,将无法正常工作。

如果我们将用户user_abz添加到数据库角色db_securityadmin,它将起作用。

我们必须配置哪个角色/权限以授予用户对该过程的访问权限?

谢谢。

0 个答案:

没有答案