Asp.net

使用者定義的表類型的 EXECUTE 權限被拒絕?

  • July 29, 2011

我有一個關於SQL Server 2008 中使用者定義的表類型的問題。

為了滿足 ASP.NET 應用程序之一的需要,我們在 SQL Server 2008 上定義了自己的表類型,以將它們用作儲存過程中的參數(在 ASP.NET 應用程序中執行 sql 命令時,我們將 DataTable 對像作為儲存過程的參數傳遞看這裡的例子

問題是當我們從 ASP.NET 執行 Sql 命令(執行儲存過程)時,我們得到一個錯誤:

對象“ourTableType”、數據庫“ourDatabase”、模式“ourSchema”的執行權限被拒絕。

為什麼呢?為什麼我們需要對使用者定義的表類型設置權限?為什麼僅在使用它的儲存過程上設置權限是不夠的?如果我們無論如何都必須設置它,為什麼EXECUTE在屬性視窗中沒有設置權限類型(我只能看到Control, References, Take Ownership, View Definition)?

我也不明白的是,Control在屬性視窗中設置權限可以解決問題,並且儲存過程執行沒有問題。

我真的希望你現在已經解決了這個問題,因為這個問題已經快 4 個月了,但如果你還沒有,這就是我認為的答案。

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

引用自:https://stackoverflow.com/questions/6870320