当当前用户看不到表时,如何向新用户授予对列的访问权限?

How to give access to columns to new user when current user does not see the tables?

我使用 SYSTEM 用户创建了一个新用户。之后,我尝试仅在 1 table 中为该用户授予对特定列的访问权限,但出现此 table 不存在的错误。这意味着 SYSTEM 用户无权访问此 table。不幸的是,有权访问正常生产 tables 的用户无法管理用户权限和访问权限。我有哪些选择?

CREATE USER test1 IDENTIFIED BY 123456;
GRANT UPDATE (extinvno, invoiceno) ON invoice TO test1;

编辑:解决方案 创建了我需要的 3 个视图。授予新用户 SELECT 并更新其中 2 个视图,并在第 3 个视图上选择。对于新用户,我不得不使用 chema 来引用视图:chema.view

如果 SYSTEM 不拥有 table 那么您需要指定谁拥有;例如,如果 table 在 HR 模式中,您将执行:

GRANT UPDATE (extinvno, invoiceno) ON HR.invoice TO test1;

...当然要使用真正拥有的架构名称。

并不是说 SYSTEM 没有权限访问 table;这是默认情况下它正在寻找 SYSTEM.invoice,它不存在。

table 所有者也可以将更新权限授予 test1