这有点像,但我想知道是否可以限制SQL中的用户组只能查看某些数据子集..
比如说一个产品表,ProductName和State是两列。我只希望用户组在查询SELECT * FROM Products
这可能吗?
答案 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)
创建与您的子集对应的一个或多个视图,并为它们设置适当的权限。