我有一个关于 User-Defined Table Types 的问题在 SQL Server 2008 中。
为了满足其中一个 ASP.NET 应用程序的需要,我们在 SQL Server 2008 上定义了自己的表类型,以将它们用作存储过程中的参数(在 ASP.NET 应用程序中执行 sql 命令时,我们将 DataTable 对象作为参数传递)对于存储过程 see here for an example )
问题是,当我们从 ASP.NET 运行 Sql 命令(执行存储过程)时,我们收到错误:
The EXECUTE permission was denied on the object 'ourTableType', database 'ourDatabase', schema 'ourSchema'.
为什么会这样呢?为什么需要对自定义表类型设置权限?为什么仅对使用它的存储过程设置权限还不够?如果我们无论如何都必须设置它,为什么在属性窗口中没有可以设置的 EXECUTE
权限类型(我只能看到 Control
、References
、取得所有权
、查看定义
)?
我也不明白的是,在属性窗口中设置对 Control
的权限可以解决问题,并且存储过程运行没有问题。
最佳答案
我真的希望你现在已经解决了这个问题,因为这个问题已经有近 4 个月的历史了,但如果你还没有解决,我认为这就是答案。
GRANT EXEC ON TYPE::[schema].[typename] TO [User]
GO
关于asp.net - 用户定义的表类型的 EXECUTE 权限被拒绝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6870320/