【发布时间】:2020-08-24 14:27:57
【问题描述】:
我有一个数据库,想分配角色和权限。
我的目标是允许多个用户——所有人都拥有相同的权限——能够创建、编辑和查看表格(就是这样)。
我了解用户表权限允许用户Create, alter, drop and delete 表中的项目。但我也明白有一个
resource user 允许用户执行相同操作的预定义角色。
我会同时提供这两个角色吗?表级权限和预定义角色?如果我同时提供两者会发生什么?可以吗?
【问题讨论】:
-
你能澄清一下在这种情况下你所说的“alter”和“drop”是什么意思吗?
alter和drop是 DDL 命令,可让您修改表的结构或从数据库中删除表。这些不是对象级别的权限,并且与表中的行无关。您真的是指“选择、插入、更新和删除表中的行”吗? -
不同的数据库产品有不同的组织方式。在 Oracle 中,每个用户都拥有一个“模式”(他们自己创建的所有表、索引、过程等)。用户通常(但不总是!)被授予对他们自己的模式的广泛特权,而对其他人的模式则很少有特权。 在哪里您希望“所有”用户能够编辑和查看表格?每个都在自己的架构中,还是您想为“通用”对象创建“通用”架构,并仅授予用户对该架构中对象的权限?
-
但是如果我向用户提供资源用户角色,那不会允许用户更改数据库上的所有表吗?
-
允许用户更改所有表是一个巨大的安全风险。你到底为什么会考虑允许除了 DBA 之外的任何人?
-
老实说,这个问题更像是一个“我能不能”——它甚至会提出一个不同类型的问题(或者我什至应该)。我只是觉得奇怪为什么会有角色和表权限,所以如果我向用户提供资源用户角色,那不会允许用户更改数据库上的所有表,那么即使有表又有什么意义呢?级别权限?
标签: oracle security sqlplus user-roles database-security