gpt4 book ai didi

sql - 需要什么权限才能使用 SQL Server 表值参数 (TVP) 作为存储过程参数?

转载 作者:行者123 更新时间:2023-12-02 16:05:02 27 4
gpt4 key购买 nike

我正在使用 SQL Server 2008 R2,并且创建了一个 TVP,我想将其用作存储过程的参数,但我收到一条消息,指出找不到它或我没有权限.

我可以在脚本或存储过程的主体中使用 TVP,但是当我尝试将它用作参数时,我收到错误。

有什么想法吗?

编辑:为了澄清,我收到的错误是在创建存储过程时出现的

最佳答案

为了让调用者将 PROC 与表值参数一起使用,您需要(不直观地)grant execute permissionsTVP 类型上调用 PROC

GRANT EXECUTE ON TYPE::[schema].[MyTVP] to [SomeRole]

编辑

我相信我能够复制这个问题,即从授予用户的最小权限集开始工作。重要的一步是 DBO 或 TVP 的模式所有者授予您以下访问权限,以便能够在 PROC 中使用它(没有此访问权限,我可以声明TVP 类型的松散变量,但不在 PROC 中使用它)。

GRANT REFERENCES ON TYPE::[schema].[MyTVP] to YOURROLE -- Or User.

Grant Reference here(显然,您还需要 CREATE PROCEDURE 权限,以及对 PROC 中使用的任何对象的相关访问权限)

根据最初的答案,PROC 的使用者还需要拥有对 Proc 和类型的 GRANT EXECUTE 权限。

关于sql - 需要什么权限才能使用 SQL Server 表值参数 (TVP) 作为存储过程参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23679594/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com