【发布时间】:2009-10-28 05:17:53
【问题描述】:
我想创建一个类似于以下内容的视图,但我不断收到 ORA-01031 - 权限不足错误
create view v_dbinfo as
Select INSTANCE_NAME,HOST_NAME from v$instance;
我可以从 v$instance 中进行选择,并从现有表中创建视图而不会出现任何问题。 关于为什么会发生这种情况以及我该如何解决它的任何想法?
谢谢
【问题讨论】:
我想创建一个类似于以下内容的视图,但我不断收到 ORA-01031 - 权限不足错误
create view v_dbinfo as
Select INSTANCE_NAME,HOST_NAME from v$instance;
我可以从 v$instance 中进行选择,并从现有表中创建视图而不会出现任何问题。 关于为什么会发生这种情况以及我该如何解决它的任何想法?
谢谢
【问题讨论】:
我倾向于打赌您可以通过角色而不是直接授权访问 V$INSTANCE。如果您想创建一个视图(或在定义者的权限存储过程中引用 V$INSTANCE),您需要通过直接授权而不是角色获得对引用对象的访问权限。
此外,如果您打算向其他用户授予对该新视图的访问权限,则需要使用 WITH GRANT OPTION 子句授予对 V$INSTANCE 的访问权限,即
GRANT SELECT ON v$instance
TO your_user_name
WITH GRANT OPTION;
【讨论】: