授予/撤销Oracle SQL

时间:2014-03-19 13:27:14

标签: sql oracle oracle-apex grant

我想设置grant / revoke并在oracle apex中创建角色。但是我不希望为用户执行此操作,但是对于表中的数据,例如基于表中的Id,我想要撤消其更新任何数据的权限。这是可能的,这是最好的方法。

3 个答案:

答案 0 :(得分:0)

您无法对表格中的特定行执行此操作。您只能为整个表格发出GRANT / REVOKE。

http://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqljgrant.html

您必须在应用程序(PL / SQL)级别处理表中特定数据的更新。

答案 1 :(得分:0)

有两种选择:

  • 您可以使用Oracle Label Security

  • 您可以在表格顶部创建一个视图,该视图将根据当前用户的EMPLOYEE_ID进行查询。

答案 2 :(得分:0)

一些注意事项,过去曾在PostgreSQL上做过类似的事情。

  1. 可以在此类事物的数据之上创建视图。
  2. 您通常要执行行级安全性。有关教程,请参阅http://www.dba-oracle.com/concepts/restricting_access.htm
  3. 第一种方法涉及第二种方法的所有问题,然后是一些问题。原因是您必须在您的视图中编写策略引擎。在第二种方法中,您可以获得一个策略引擎,您可以将策略应用到。

    经验中的一些注释:

    1. 如果您要一次查看多行, 希望避免从表中的其他行查找权限数据。
    2. 在实施权限检查之前仔细考虑权限检查的性能影响。
    3. 这类事情通常是性能问题,需要一些时间才能解决。随着您未曾想过的用例变得重要,请做好长时间的优化准备。