1

我在 MaxDb 数据库中创建了一个新用户。我分配了一个角色,该角色可以访问 roleprivileges 中的所有表,但用户看不到这些表。

如果我将权限直接分配给 tableprivileges 中的表,则用户可以访问这些表。

该角色具有访问权限,其他用户已分配此角色并且他们可以看到所有表格。

什么会失败?

4

2 回答 2

2

今天我第一次听说 MaxDB(真是个无知的人,嗯?)。我不确定您为什么用“Oracle”标签标记您的问题;谷歌说 MaxDB <> Oracle。

无论如何:这听起来像是Oracle 的 PL/SQL 中的常见问题,其中特权 - 通过角色获得 - 不起作用,但必须直接授予用户。

说“其他用户分配了这个角色并且他们看到了所有的表”,你确定他们也没有被授予直接权限吗?

于 2018-04-04T11:56:27.463 回答
1

假设这确实涉及 MaxDB,而不是 Oracle:与特权相比,需要为用户会话激活角色。分配是不够的。它是通过命令完成的SET ROLE <role>。每个新会话也可以默认激活一个角色,使用命令: ALTER USER <user> DEFAULT ROLE <role>。您还可以激活分配给用户的所有角色,如下所示: ALTER USER <user> DEFAULT ROLE ALL.

于 2020-06-02T20:49:25.813 回答