限制用户在SQL查询中可以看到的内容

时间:2012-05-03 06:24:12

标签: sql

这有点像,但我想知道是否可以限制SQL中的用户组只能查看某些数据子集..

比如说一个产品表,ProductName和State是两列。我只希望用户组在查询SELECT * FROM Products

等查询时查看其州的产品

这可能吗?

2 个答案:

答案 0 :(得分: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';

还有更多可能,但这是基础。

答案 1 :(得分:1)

创建与您的子集对应的一个或多个视图,并为它们设置适当的权限。