系统和数据库将Oracle数据库中的用户分级

时间:2015-01-25 13:42:52

标签: sql database oracle

我使用的是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中作为数据库用户显示?

2 个答案:

答案 0 :(得分:1)

用户和模式在Oracle中是同义词 - 基本上。模式是用户拥有的对象的集合。

为了获得你想要的东西,你需要创建缺少privs的用户来创建任何东西,并且只能从其他人的对象中进行选择。

答案 1 :(得分:1)

在引用其他模式中的对象时,必须提供模式名称。其他用户可能具有相同名称的表。目前您使用系统用户登录,这是不可取的。在BASE模式中创建对象(de Oracle DB中用户的另一个名称)时,为什么不给用户一些额外的权限(比如授予权限)? 您的问题的核心是您希望在B拥有的对象上向用户A授予权限,以用户C身份登录。在这种情况下,您必须非常具体地向Oracle授予哪些权限授予谁;)