1

在我們的數據庫中,所有表格都鏈接回單個表格。此表有一列位來限制是否顯示記錄。目前這些記錄在網站的代碼一側被過濾。SQL Server 2008 EF 4 - 使用權限返回限制數據庫記錄?

是否有任何方法設置權限,以便userA永遠不會看到數據庫中的哪個公共位列設置爲true的任何記錄?

我們使用SQL Server 2008的

另外,我們還使用實體框架4.0 .NET 4的(在C#),如果你有任何想法如何它可能有實現的呢?

感謝您的反饋。

回答

0

根據this excellent TechNet article,如果使用視圖或存儲過程來限制當前用戶的結果,相應地構建數據庫,SQL服務器確實可以實現行級安全性。據我所知,SQL Server沒有內置的行級鎖定功能。

+0

感謝您的回覆,我想答案是除了創建視圖之外,真的沒有辦法處理它。 – Chuck 2011-02-24 19:02:01

+0

@Chuck當然沒有內置的機制。就我個人而言,我會在應用程序中構建自己的權限處理。 – 2011-02-24 19:32:24

0

您可以在表格頂部定義視圖,該視圖僅顯示那些「活動」列設置爲1(true)的行。

然後,您可以撤銷該組用戶對基礎表的SELECT權限,但是又會在您創建的新視圖上授予他們SELECT

+0

我們考慮過這個,但是我們必須保留2個完整的獨立實體集(1個使用視圖,1個使用表或不同視圖),所以我想我們將不得不探索更多的代碼端選項。 – Chuck 2011-02-24 19:04:55