【问题标题】:User can view table from other user ORACLEDB用户可以查看其他用户的表 ORACLEDB
【发布时间】:2013-06-24 00:02:12
【问题描述】:

我从名为john 的用户创建了一个名为products 的表。我希望名为 doe 的用户有权查看该表,而另一个名为 lorem 的用户能够在此表中删除、插入、选择和更新。我怎样才能做到这一点?我需要设置哪些角色和权限?

PD:有人告诉我,我必须这样做:

CREATE VIEW view_products
as
SELECT * FROM products;

是这样吗?

【问题讨论】:

  • 可能重复:[ORA-01031: 选择视图时权限不足] (stackoverflow.com/a/140665/1563878)。检查这个link。如果可以,请发布 oracle 错误代码。
  • 您不需要视图。阅读 GRANT 声明。
  • 我这样做'GRANT SELECT ON COCO.PRODUCTOS TO "ZETA" WITH GRANT OPTION' 但使用 zeta 我可以查看表格

标签: sql database oracle


【解决方案1】:

您可以使用 GRANT 语句:

grant select, insert, update, delete on products to lorem;

grant select on products  to doe;

如果您计划允许多个不同的用户访问,那么您可能需要创建一个角色,将用户分配给特定角色,然后授予对角色的访问权限,而不是单个用户。这样,如果您将来添加更多用户,您只需为他们分配适当的角色,而不会再次弄乱表权限。更易于管理。

使用视图:

CREATE VIEW view_products
as
SELECT * FROM products;


grant select, insert, update, delete on view_products to lorem;
grant select on view_products  to doe;

【讨论】:

  • 问题是我可以在例如 sqldeveloper 中看到用户 doelorem 的表
  • 你是什么意思,“我可以看到桌子?”你在期待什么?
  • 所以,创建一个视图,并授予对该视图的访问权限。
  • 我必须从创建表的用户创建一个视图,还是从我想查看表的用户创建一个视图?
  • 非常感谢@OldProgrammer
猜你喜欢
  • 2011-08-06
  • 2021-08-04
  • 2016-03-21
  • 2012-08-08
  • 1970-01-01
  • 2015-05-14
  • 2020-09-30
  • 2018-06-15
  • 1970-01-01
相关资源
最近更新 更多