Oracle:使用管理帐户跨架构创建视图

Oracle:使用管理帐户跨架构创建视图,oracle,views,privileges,grant,Oracle,Views,Privileges,Grant,我想使用SCHEMA_B中表许可证中的列在SCHEMA_a中创建一个视图 create view SCHEMA_B.V_TEST as SELECT LICENSE_NUMBER FROM SCHEMA_A.LICENSE L 然后 当我试图从视图中选择管理员帐户时,这给了我“ORA-01031:权限不足”。(编辑:管理员帐户具有选择任何表的权限。)我缺少什么 有一个类似的问题,但解决方案必须与一个用户向另一个用户授予select有关。既然我是管理员,我应该已经对这两个模式拥有se

我想使用SCHEMA_B中表许可证中的列在SCHEMA_a中创建一个视图

create view SCHEMA_B.V_TEST as
SELECT  LICENSE_NUMBER  FROM     SCHEMA_A.LICENSE L
然后

当我试图从视图中选择管理员帐户时,这给了我“ORA-01031:权限不足”。(编辑:管理员帐户具有选择任何表的权限。)我缺少什么


有一个类似的问题,但解决方案必须与一个用户向另一个用户授予select有关。既然我是管理员,我应该已经对这两个模式拥有select权限了?但是,我尝试添加行“使用GRANT选项将架构A.LICENSE上的选择授予管理员帐户”,并得到相同的错误。

我认为视图的创建失败,因为架构b没有架构A.LICENSE的选择权限。由于要在schema_b中创建对象,schema_b必须具有必要的权限

授予它:

作为schema_a(或DBA-“管理员帐户”)


然后您应该能够创建视图,然后从中进行选择。

将视图视为管理员帐户是什么意思?您是说在
schema_a
中创建视图时出错了吗?您是说第三个帐户没有权限查询您在
schema_a
中创建的视图吗?还是你在说别的?引起错误的陈述是什么?贾斯汀·凯夫,对不起,是的,不清楚。编辑以澄清问题。您得到的ORA-01031是从中选择的,而不是创建视图,对吗?这意味着
schema_b
确实对
schema_a.license
具有选择权限,这是必需的。
select
中的错误表明您的“管理员帐户”没有
select any table
权限,因此您需要查看您确实拥有和需要哪些权限。为什么您认为您已经在这两个模式上拥有select权限?您可能对现有对象具有显式权限,但无法自动查看新内容。(您是否需要从该帐户查询视图并不明显?)。是的,我从视图中选择它。我添加了“选择任意表”权限,并继续得到错误。还可能缺少什么?@user3234309-您将该权限授予了谁,是
schema_b
管理员用户还是管理员用户?管理员用户是否直接或通过角色授予其权限?您是否也可以确认,当实际连接为
schema_b
时,是否可以从视图中进行选择;视图已创建(在注释中确认),这意味着
schema\u b
schema\u a
上没有选择权限。它失败,然后
admin\u account
(似乎没有DBA权限)尝试从视图中进行选择,这表明用户对新对象没有选择权限。我想。
select * from  SCHEMA_B.V_TEST
grant select on schema_a.licence to schema_b