Oracle 10g Express—让其他用户查看来自其他用户的表
我现在是甲骨文的一个大傻瓜。我被要求将两个数据库导入Oracle。我成功了……我想有点……成功了。因此,这些数据库是与用户一起导出的,当我导入数据库时,它创建了用户,所有表都附加到该用户。第二个数据库也是如此。让我们只为第一个导入USER1和第二个db import USER2调用用户。USER1有自己的表,USER2有自己的表 我想创建一个可以查看所有这些表的用户。因此,我不必登录其中一个来访问和操作它的数据,而另一个也可以这样做。我想创建一个USER3,它可以查看和操作与每个USER1和USER2相关联的表。我已经尝试了很多方法,但似乎无法让它发挥作用。任何帮助都将不胜感激Oracle 10g Express—让其他用户查看来自其他用户的表,oracle,security,oracle10g,schema,privileges,Oracle,Security,Oracle10g,Schema,Privileges,我现在是甲骨文的一个大傻瓜。我被要求将两个数据库导入Oracle。我成功了……我想有点……成功了。因此,这些数据库是与用户一起导出的,当我导入数据库时,它创建了用户,所有表都附加到该用户。第二个数据库也是如此。让我们只为第一个导入USER1和第二个db import USER2调用用户。USER1有自己的表,USER2有自己的表 我想创建一个可以查看所有这些表的用户。因此,我不必登录其中一个来访问和操作它的数据,而另一个也可以这样做。我想创建一个USER3,它可以查看和操作与每个USER1和US
感谢允许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?以下内容有用吗?我想这就是我要找的我只是不明白为什么我要这么做。但我想我会试试的。