Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 10g Express—让其他用户查看来自其他用户的表_Oracle_Security_Oracle10g_Schema_Privileges - Fatal编程技术网

Oracle 10g Express—让其他用户查看来自其他用户的表

Oracle 10g Express—让其他用户查看来自其他用户的表,oracle,security,oracle10g,schema,privileges,Oracle,Security,Oracle10g,Schema,Privileges,我现在是甲骨文的一个大傻瓜。我被要求将两个数据库导入Oracle。我成功了……我想有点……成功了。因此,这些数据库是与用户一起导出的,当我导入数据库时,它创建了用户,所有表都附加到该用户。第二个数据库也是如此。让我们只为第一个导入USER1和第二个db import USER2调用用户。USER1有自己的表,USER2有自己的表 我想创建一个可以查看所有这些表的用户。因此,我不必登录其中一个来访问和操作它的数据,而另一个也可以这样做。我想创建一个USER3,它可以查看和操作与每个USER1和US

我现在是甲骨文的一个大傻瓜。我被要求将两个数据库导入Oracle。我成功了……我想有点……成功了。因此,这些数据库是与用户一起导出的,当我导入数据库时,它创建了用户,所有表都附加到该用户。第二个数据库也是如此。让我们只为第一个导入USER1和第二个db import USER2调用用户。USER1有自己的表,USER2有自己的表

我想创建一个可以查看所有这些表的用户。因此,我不必登录其中一个来访问和操作它的数据,而另一个也可以这样做。我想创建一个USER3,它可以查看和操作与每个USER1和USER2相关联的表。我已经尝试了很多方法,但似乎无法让它发挥作用。任何帮助都将不胜感激


感谢允许USER3查询USER1拥有的表:

GRANT SELECT ON USER1.tablename TO USER3;
必须对每个表分别运行此操作

您可能需要的其他授权包括插入、更新和删除,例如授予完全控制权:

GRANT SELECT, INSERT, UPDATE, DELETE ON USER1.tablename TO USER3;
当您以USER3登录时,要查询表,通常需要指定架构,例如:

SELECT * FROM USER1.tablename;
如果希望避免每次都必须指定架构,可以使用同义词,例如:

(login as USER3)

CREATE SYNONYM tablename FOR USER1.tablename;
现在,您可以以USER3身份登录并运行以下操作:

SELECT * FROM tablename;

“我只是不明白为什么我要这么做。”


用户(或模式)是Oracle用于组织应用程序和实施治理的手段。在设计良好的应用程序中,一个模式不太可能需要将其所有对象的所有特权授予另一个用户。Oracle建议向其他用户授予最低必要权限集的策略。要做到这一点,我们需要做出选择并编写独立的语句来授予特定对象的特定权限。

您尝试过什么,@stewbydoo?以下内容有用吗?我想这就是我要找的我只是不明白为什么我要这么做。但我想我会试试的。