Oracle,对除 1 之外的任何 table 授予 select
Oracle, grant select on any table except 1
我想让用户访问我的数据库中的所有 table,但 1 table 除外,例如 'MY_SECRET_TABLE'。
我的解决方案目前不起作用...:[=13=]
Grant select any table to public;
Grant select any table to MY_USER;
Revoke all on MY_SECRET_TABLE from MY_USER;
但我仍然可以访问 table。
我做错了什么吗?
谢谢,
GRANT SELECT ON ANY TABLE 是一个非常强大的权限,因此您可能需要重新考虑您的策略。
无论如何,我看到的唯一解决方案是使用行级安全性,这样除了 MY_USER 之外的任何人都可以 select table 但不会返回任何行。
听起来怎么样?
一种方法是通过 SQL
获得可执行授权
SELECT 'GRANT SELECT ON ' || object_name || ' TO USERNAME;'
FROM user_objects
WHERE object_type = 'TABLE' AND object_name != 'EXCEPT_THIS_TABLE'
ORDER BY object_name;
我想让用户访问我的数据库中的所有 table,但 1 table 除外,例如 'MY_SECRET_TABLE'。 我的解决方案目前不起作用...:[=13=]
Grant select any table to public;
Grant select any table to MY_USER;
Revoke all on MY_SECRET_TABLE from MY_USER;
但我仍然可以访问 table。 我做错了什么吗?
谢谢,
GRANT SELECT ON ANY TABLE 是一个非常强大的权限,因此您可能需要重新考虑您的策略。
无论如何,我看到的唯一解决方案是使用行级安全性,这样除了 MY_USER 之外的任何人都可以 select table 但不会返回任何行。
听起来怎么样?
一种方法是通过 SQL
获得可执行授权SELECT 'GRANT SELECT ON ' || object_name || ' TO USERNAME;'
FROM user_objects
WHERE object_type = 'TABLE' AND object_name != 'EXCEPT_THIS_TABLE'
ORDER BY object_name;