Oracle 数据库中的系统和数据库级用户
System and database leveled users in Oracle Database
我使用的是 Oracle 数据库 EX 11.2.0.2.0,我在那里创建了一个非常简单的数据库。
现在的问题是我想设置多个具有不同权限的用户。我找到了那个主题:How to create a user in Oracle 11g and grant permissions
但我无法在任何地方找到有关用户帐户的基本信息:
创建系统级用户和特定数据库级用户有什么区别?
我以 SYSTEM 身份登录 sqlplus 并执行了以下命令:
CREATE USER TEST IDENTIFIED BY password;
GRANT CONNECT TO TEST;
现在的问题是我的数据库实际上被称为 BASE,其中一个 table 被称为 PAYMENTS 并且将任何权限授予我无法执行的新创建用户:
GRANT SELECT ON PAYMENTS TO TEST;
但我必须输入:
GRANT SELECT ON BASE.PAYMENTS TO TEST;
所以我想我错过了什么。是否可以通过任何方式将创建的用户连接到特定数据库?以便新创建的用户在 Oracle APEX 中作为数据库用户可见?
用户和模式在 Oracle 中基本上是同义词。架构是用户拥有的对象的集合。
为了得到你想要的东西,你需要创建没有权限创建任何东西的用户,并且只能select来自其他人的对象。
在其他架构中引用对象时,您必须提供架构名称。其他用户可能有一个同名的 table。当前您使用系统用户登录,这是不可取的。在 BASE 模式(de Oracle DB 中用户的另一个名称)中创建对象时,为什么不给用户一些额外的权限(比如授予特权)?
你的问题的核心是你想授予用户 A 对 B 所拥有的对象的权限,以用户 C 的身份登录。在这种情况下,你必须非常具体地向 Oracle 授予哪些权限;)
我使用的是 Oracle 数据库 EX 11.2.0.2.0,我在那里创建了一个非常简单的数据库。 现在的问题是我想设置多个具有不同权限的用户。我找到了那个主题:How to create a user in Oracle 11g and grant permissions 但我无法在任何地方找到有关用户帐户的基本信息: 创建系统级用户和特定数据库级用户有什么区别? 我以 SYSTEM 身份登录 sqlplus 并执行了以下命令:
CREATE USER TEST IDENTIFIED BY password;
GRANT CONNECT TO TEST;
现在的问题是我的数据库实际上被称为 BASE,其中一个 table 被称为 PAYMENTS 并且将任何权限授予我无法执行的新创建用户:
GRANT SELECT ON PAYMENTS TO TEST;
但我必须输入:
GRANT SELECT ON BASE.PAYMENTS TO TEST;
所以我想我错过了什么。是否可以通过任何方式将创建的用户连接到特定数据库?以便新创建的用户在 Oracle APEX 中作为数据库用户可见?
用户和模式在 Oracle 中基本上是同义词。架构是用户拥有的对象的集合。
为了得到你想要的东西,你需要创建没有权限创建任何东西的用户,并且只能select来自其他人的对象。
在其他架构中引用对象时,您必须提供架构名称。其他用户可能有一个同名的 table。当前您使用系统用户登录,这是不可取的。在 BASE 模式(de Oracle DB 中用户的另一个名称)中创建对象时,为什么不给用户一些额外的权限(比如授予特权)? 你的问题的核心是你想授予用户 A 对 B 所拥有的对象的权限,以用户 C 的身份登录。在这种情况下,你必须非常具体地向 Oracle 授予哪些权限;)