我使用的是Oracle Database EX 11.2.0.2.0,我在那里创建了一个非常简单的数据库。 现在问题是我想让多个用户设置不同的权限。我找到了这个主题:How to create a user in Oracle 11g and grant permissions 但我找不到任何关于用户帐户的基本信息: 创建系统级别和特定数据库级别用户之间有什么区别? 我已经 sqlplus 以 SYSTEM 身份登录并执行了以下命令:
CREATE USER TEST IDENTIFIED BY password;
GRANT CONNECT TO TEST;
现在问题是我的数据库实际上被称为让我们用一个名为 PAYMENTS 的表来说 BASE ,并为新创建的用户提供任何权限我无法执行:
GRANT SELECT ON PAYMENTS TO TEST;
但我必须输入:
GRANT SELECT ON BASE.PAYMENTS TO TEST;
所以我想我错过了什么。是否可以将创建的用户连接到特定数据库?这样新创建的用户将在Oracle APEX中作为数据库用户显示?
答案 0 :(得分:1)
用户和模式在Oracle中是同义词 - 基本上。模式是用户拥有的对象的集合。
为了获得你想要的东西,你需要创建缺少privs的用户来创建任何东西,并且只能从其他人的对象中进行选择。
答案 1 :(得分:1)
在引用其他模式中的对象时,必须提供模式名称。其他用户可能具有相同名称的表。目前您使用系统用户登录,这是不可取的。在BASE模式中创建对象(de Oracle DB中用户的另一个名称)时,为什么不给用户一些额外的权限(比如授予权限)? 您的问题的核心是您希望在B拥有的对象上向用户A授予权限,以用户C身份登录。在这种情况下,您必须非常具体地向Oracle授予哪些权限授予谁;)