Jos*_*sso 7 sql sql-server permissions sql-server-2008 table-valued-parameters
我正在使用SQL Server 2008 R2并且我创建了一个TVP,我想将其用作存储过程的参数,但是我收到一条消息,说它无法找到或者我没有权限.
我可以在脚本中或在存储过程的主体中使用TVP,但是当我尝试将其用作参数时,我得到了错误.
有什么想法吗?
编辑:为了澄清,我得到的错误是创建存储过程
为了让调用者使用PROC带有表值参数的a,你需要(不直观地)将类型的执行权限授予TVP那些调用PROCie的人.
GRANT EXECUTE ON TYPE::[schema].[MyTVP] to [SomeRole]
Run Code Online (Sandbox Code Playgroud)
编辑
我相信我能够复制这个问题,即从授予用户的最小权限集开始.至关重要的一步是让您的TVP的DBO或Schema所有者授予您以下访问权限,以便能够在a中使用它PROC(没有此访问权限,我能够声明TVP类型的松散变量,但不要在PROC中使用它.
GRANT REFERENCES ON TYPE::[schema].[MyTVP] to YOURROLE -- Or User.
Run Code Online (Sandbox Code Playgroud)
Grant Reference
(显然你也需要CREATE PROCEDURE权限,以及对PROC中使用的任何对象的相关访问权限)
PROC的消费者还需要GRANT EXECUTE根据初始答案获得Proc和Type 的许可.
| 归档时间: |
|
| 查看次数: |
3420 次 |
| 最近记录: |