SQL 是否可以在 GRANT SELECT 语句中添加 WHERE 子句?
SQL is it possible to add a WHERE clause to a GRANT SELECT statement?
我希望能够授予对视图中所有信息的读取权限,DOB 不为空的行除外(即用户只能读取 DOB 为空的行)。这可能吗?一个例子(我想工作但不起作用)是:
GRANT SELECT ON DRVADM WHERE DOB IS NULL TO user_2;
谢谢
- 我假设您正在使用
mysql
(确认,post 您用于从终端会话连接到数据库的命令)。
- 您不能
GRANT
基于行,只能基于 columns/tables 级别。 mysql docs 中的 GRANT SELECT
语句没有 WHERE
子句
- 您可以考虑创建一个仅包含选定行(他必须看到的行)的
VIEW
。然后授予用户访问此 VIEW
(=所有行)
我希望能够授予对视图中所有信息的读取权限,DOB 不为空的行除外(即用户只能读取 DOB 为空的行)。这可能吗?一个例子(我想工作但不起作用)是:
GRANT SELECT ON DRVADM WHERE DOB IS NULL TO user_2;
谢谢
- 我假设您正在使用
mysql
(确认,post 您用于从终端会话连接到数据库的命令)。 - 您不能
GRANT
基于行,只能基于 columns/tables 级别。 mysql docs 中的 - 您可以考虑创建一个仅包含选定行(他必须看到的行)的
VIEW
。然后授予用户访问此VIEW
(=所有行)
GRANT SELECT
语句没有 WHERE
子句