2
用户定义的表类型是否拒绝EXECUTE权限?
我对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在属性窗口中将权限设置为可以解决问题,并且存储过程可以正常运行。