asp.net - 用户定义的表类型的 EXECUTE 权限被拒绝?

标签 asp.net security sql-server-2008 stored-procedures user-defined-types

我有一个关于 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 权限类型(我只能看到 ControlReferences取得所有权查看定义)?

我也不明白的是,在属性窗口中设置对 Control 的权限可以解决问题,并且存储过程运行没有问题。

最佳答案

我真的希望你现在已经解决了这个问题,因为这个问题已经有近 4 个月的历史了,但如果你还没有解决,我认为这就是答案。

GRANT EXEC ON TYPE::[schema].[typename] TO [User]
GO

关于asp.net - 用户定义的表类型的 EXECUTE 权限被拒绝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6870320/

相关文章:

asp.net 服务器控件 - 避免添加多个 javascript

passwords - 密码重置页面是否应该自动验证用户身份?

.net - 在 WCF 中使用消息级别安全性时是否需要传输级别安全性?

sql-server - 使用 TCP/IP 连接到 SQL Server 2008

sql-server-2008 - SQL : How to convert values to lower case and append an s?

sql - 设置默认架构的问题

c# - 如何从数据库中获取唯一记录?

c# - 如何让SQL代码生成和返回代码

.net - 如何对正在运行的 ASP.NET 应用程序进行非侵入式分析?

security - Base 64 编码的目的是什么?为什么在 HTTP 基本身份验证中使用它?