在存储过程中调用GRANT

时间:2016-11-30 21:45:44

标签: tsql stored-procedures grant

我尝试在存储过程中授予访问权限,但我有错误。

我的存储过程是:

CREATE PROCEDURE MyShema.up_MyStoredProcedureName
    -- Add the parameters for the stored procedure here
AS
BEGIN

  GRANT SELECT ON OBJECT :: MyBD.MyShema.vw_MyViewToGiveAccess TO sqlUserGroup
  GO
END

但是当我尝试创建它时,它会给出我的错误:

Msg 102, Niveau 15, État 1, Procédure up_MyStoredProcedureName, Ligne 41 Incorrect syntax near 'sqlUserGroup'.
Msg 102, Niveau 15, État 1, Ligne 44 Incorrect syntax near 'END'.

但是当我单独执行此GRANT命令(而不是在存储过程创建中)时,它可以工作。所以我的userGroup和我的表名都没问题。

我们如何做到这一点?

我只在堆栈溢出中找到一个关于类似问题的帖子(存储过程中的调用授权),但尚未回答。它告诉我们可以做到但仍然没有关于它的例子。 Can I execute GRANT statement in a stored procedure using MYSQL

提前感谢您的帮助

注意:我目前正在使用版本为2008的SQL Server

1 个答案:

答案 0 :(得分:1)

添加括号[sqlUserGroup]并添加域(如果存在)。

删除GO。