2012-05-03 20 views
0

這有點在那裏,但我不知道是否有可能在SQL一個用戶組的限制,只看到數據的某些子集..限制了用戶可以在SQL查詢中看到

比方說產品表,ProductName和State是兩列。我只想要一個用戶組從他們的狀態看到產品,當他們做一個查詢時,如SELECT * FROM Products

這可能嗎?

+1

哪個DBMS? PostgreSQL的?甲骨文? DB2? –

回答

1

創建與您的子集相對應的一個或多個視圖,併爲它們設置適當的權限。

2

限制對基礎表的訪問。

並讓您的用戶組訪問這些基礎表的視圖。

所以:

鑑於表:

CREATE TABLE EVERYTHING ID INTEGER, TYPE CHAR(1), SEMISECRET CHAR(20), REALLYSECRECT CHAR(20)); 

您可以創建視圖這給只能訪問某些列: -

CREATE VIEW SOMESTUFF AS SELECT ID, TYPE, SEMISECRET FROM EVERTHINK; 

您可以創建視圖這給訪問某些行: -

CREATE VIEW TYPESLICE AS SELECT ID, TYPE, REALLYSECRECT WHERE TYPE ='X'; 

更多可能,但這是基礎知識。