aru*_*ira 21 .net sql-server enterprise-library
调用具有表值参数作为参数之一的存储过程时,我收到以下错误
EXECUTE
对象'ValidationErrors' 的权限被拒绝
ValidationErrors是使用以下语句创建的TVP:
CREATE TYPE [dbo].[ValidationErrors] AS TABLE(
[ErrorMessage] [varchar](255) NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
执行存储过程的用户对存储过程具有执行权限.但是,我仍然得到上述错误.有任何想法吗?
Ada*_*Dev 36
我认为您可能还需要授予用户对该类型的权限.
GRANTing对类型的权限的引用:
SQL 2005
SQL 2008
更新:
Re:当您拥有对sproc的权限时,为什么必须为该类型授予权限.我不知道确切的原因,但BOL说:
与使用sp_addtype创建的用户定义类型不同,公共数据库角色不会自动为使用CREATE TYPE创建的类型授予REFERENCES权限.必须单独授予此权限.
更新2: 要获得GRANT EXECUTE权限,您可以在SSMS中运行它:
GRANT EXECUTE ON TYPE::dbo.ValidationErrors TO SomeUser;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7158 次 |
最近记录: |