【问题标题】:How to use the SQL grant command to restrict access columns and rows in Access database如何使用 SQL grant 命令限制 Access 数据库中的访问列和行
【发布时间】:2012-11-14 15:01:47
【问题描述】:

我是这个主题的初学者和自学。我认为这是基本的,但我在我正在使用的电子书中找不到它。我不知道这是否与其他人有关,因为当我搜索此站点时,所有问题都向我提出。所以作为一个初学者,我想再问一次,因为上次我的问题因为不相关和不充分的研究而被丢弃。我尽力在网上找到答案,但没有找到答案。

这是表INVENTORY (BOOK_CODE, BRANCH_NUM, ON_HAND)

INVENTORY 的更新授予马克,这是它在 pdf 中解释的唯一方式。

这是我想回答的问题。 用户 Chambers 必须能够更改 2 号分店的手头书籍单位,但不能访问任何其他分店的数据。

这就是我的想法。

GRANT UPDATE ON(ON_HAND WHERE BRANCH_NUM = ‘2’) ON BRANCH TO CHAMBERS

这对吗?

如果您认为这与您的社区无关,请丢弃。

【问题讨论】:

    标签: sql sql-grant


    【解决方案1】:

    我想说(在任何 RDBMS 上)执行此操作的最佳方法是创建要授予访问权限的列的视图,然后授予对该视图的读取访问权限。

    【讨论】:

    • 好的,我明白了。非常感谢:)
    【解决方案2】:

    我不知道有任何数据库引擎允许在该级别定义访问权限。我怀疑没有一个。这种类型的微逻辑通常由前端应用程序处理,该应用程序具有一些比数据库提供的更精细的安全模型。

    【讨论】:

      【解决方案3】:

      正如 Hogan 所提到的,您需要先创建一个视图,然后针对该视图为用户分配更新权限,所以...

      create view branch2_inventory as select book_code, on_hand from inventory where branch_num = 2;
      
      grant update on branch2_inventory to chambers;
      

      【讨论】:

      • 非常感谢。我现在明白了。我只考虑现有的表。
      猜你喜欢
      • 2010-09-13
      • 1970-01-01
      • 2021-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多