在 Linux 上的 Db2 v11.5 上,我有几个数据库,其中包含 MYSCHEMA 模式中的数百个表。
要求
a) 我需要为 MYSCHEMA 模式中的所有表分配 SELECT 权限,但不包括用户不得访问的特定表 MYSCHEMA.NO_ACCESS。
b) 如果在 MYSCHEMA 模式中创建了新表,我需要手动在新表上添加 GRANT SELECT。我希望在创建新表时避免任何类型的安全管理。
c) 当我们从审计公司进行审计时,需要简单地提供一些用户拥有和不拥有哪些访问权限的信息。拥有数百个授权很难向用户表明他们确实只拥有他们需要的访问权限。
当前解决方案
目前,我们授予除表 MYCHEMA.NO_ACCESS 之外的所有表的选择权限,如下所示:
GRANT SELECT ON TABLE MYSCHEMA.TAB1 TO GROUP GROUP1
GRANT SELECT ON TABLE MYSCHEMA.TAB2 TO GROUP GROUP1
...
GRANT SELECT ON TABLE MYSCHEMA.TAB5000 TO GROUP GROUP1
(make sure there is no MYSCHEMA.NO_ACCESS on grant list)
上述方法有局限性,当在 MYSCHEMA 模式中创建新表时,我需要在新表上设置 GRANT SELECT。
另外,在审计时由于有大量的权限,很难证明用户确实只拥有他们应该拥有的权限。
如果可能的话,采取新方法
Db2 v11.5 对模式具有 GRANT SELECTIN 权限。
有没有类似的东西:
GRANT SELECTIN ON SCHEMA MYSCHEMA TO GROUP GRUP1
DENY SELECT ON TABLE MYSCHEMA.NO_ACCESS TO GROUP GROUP1
拒绝比授予更重要。
或者还有其他方法吗?