这有点过时了,但我想知道是否可以将 SQL 中的用户组限制为只能查看某些数据子集。
比如说一个产品表,ProductName 和 State 是两列。我只希望用户组在执行类似查询时查看其状态的产品SELECT * FROM Products
那可能吗?
这有点过时了,但我想知道是否可以将 SQL 中的用户组限制为只能查看某些数据子集。
比如说一个产品表,ProductName 和 State 是两列。我只希望用户组在执行类似查询时查看其状态的产品SELECT * FROM Products
那可能吗?
限制对基础表的访问。
并让您的用户组访问这些基础表的视图。
所以:
给定表:
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';
更多是可能的,但这是基础。
创建一个或多个与您的子集相对应的视图,并为其设置适当的权限。