在 oracle 中使用具有 dba 权限的系统视图授予创建视图
grant create view using system view with dba privilage in oracle
当我尝试创建像
这样的视图时
create view viewname as select * from table1;
正在运行。但是当我尝试创建像
这样的视图时
Create view view1 as Select * from dba_users;
我无法创建它,但显示权限不足。但是,我能够对给定视图执行 select 操作并获得结果。
select * from dba_users;
我是否需要添加任何其他角色才能创建包含 dba_users(或任何其他带有 dba 的表)作为其定义的一部分的视图
最有可能的问题是您对 dba_users
的访问是通过角色获得的。如果你想创建一个引用 dba_users
的视图(或者如果你想创建一个引用 dba_users
的定义者权限存储过程),你需要直接而不是通过角色向你的用户授予权限.假设您希望能够引用视图和存储过程中的所有数据字典表,您可能希望让您的 DBA 直接授予您 SELECT ANY DICTIONARY
权限,而不是通过角色。
当我尝试创建像
这样的视图时create view viewname as select * from table1;
正在运行。但是当我尝试创建像
这样的视图时Create view view1 as Select * from dba_users;
我无法创建它,但显示权限不足。但是,我能够对给定视图执行 select 操作并获得结果。
select * from dba_users;
我是否需要添加任何其他角色才能创建包含 dba_users(或任何其他带有 dba 的表)作为其定义的一部分的视图
最有可能的问题是您对 dba_users
的访问是通过角色获得的。如果你想创建一个引用 dba_users
的视图(或者如果你想创建一个引用 dba_users
的定义者权限存储过程),你需要直接而不是通过角色向你的用户授予权限.假设您希望能够引用视图和存储过程中的所有数据字典表,您可能希望让您的 DBA 直接授予您 SELECT ANY DICTIONARY
权限,而不是通过角色。