Jan*_*nez 82 asp.net security stored-procedures user-defined-types sql-server-2008
我对SQL Server 2008中的用户定义表类型有疑问.
为了满足ASP.NET应用程序之一的需要,我们在SQL Server 2008上定义了自己的表类型,并将它们用作存储过程中的参数(在ASP.NET应用程序中执行sql命令时,我们将DataTable对象作为存储过程的参数传递看这里的例子)
问题是当我们从ASP.NET运行Sql命令(执行存储过程)时,我们收到一个错误:
对象'ourTableType',数据库'ourDatabase',架构'ourSchema'拒绝EXECUTE权限.
为什么会这样?为什么我们需要为用户定义的表类型设置权限?为什么仅仅对使用它的存储过程设置权限是不够的?如果我们要设置它,不管是什么,为什么没有EXECUTE
权限类型在属性窗口中任何设置(我只看到Control
,References
,Take Ownership
,View Definition
)?
我还不明白的是,Control
在属性窗口中设置权限可以解决问题,并且存储过程可以顺利运行.
mcc*_*002 183
我真的希望你现在已经解决了这个问题,因为这个问题差不多已经有4个月了,但如果你还没有,那么我认为这就是答案.
GRANT EXEC ON TYPE::[schema].[typename] TO [User]
GO
Run Code Online (Sandbox Code Playgroud)