主要目的是创建单独的角色,例如开发人员,测试人员和其他人员,以分别登录oracle数据库。当前,没有监视并且使用与应用程序用来查询的凭据相同的凭据,这使得监视要进行哪些更改以及由谁进行更改变得非常困难。
我尝试将所有表分配给角色,但是它不起作用。
begin
for x in (select object_name from all_objects where owner='app_owner' and object_type in ('TABLE','VIEW')) loop
execute immediate 'GRANT select on app_owner.' || x.object_name || ' to developers';
end loop;
end;
/
SQL上没有授予角色(开发人员)特权。但是,如果我单独进行拨款,那很好。
grant use of tablespace <tablespacename> to role;
上面尝试仍然没有用。 关于如何满足上述要求有什么想法?
答案 0 :(得分:0)
您不能将表空间的使用授予ROLE。用户需要在表空间上有配额才能在表空间中创建对象。您可以在CREATE USER或ALTER USER命令上授予配额。我没有在发布的PL / SQL中看到该错误来颁发授权,但是没有时间编辑和测试代码。如果查询dba_tab_privs以获取该角色,是否看到对其的授权?您还记得将角色授予目标用户吗? HTH-马克·D·鲍威尔-
答案 1 :(得分:0)
您编写的代码是 close ,但 close不够-字母大小写很重要。
THIS!
vvvvv
SQL> select object_name from all_objects where owner = 'scott' and object_type in ('TABLE', 'VIEW');
no rows selected
SQL> select object_name from all_objects where owner = 'SCOTT' and object_type in ('TABLE', 'VIEW');
OBJECT_NAME
------------------------------
V_SALGRADE
V_DEPT
V_BONUS
DEPT
EMP_VIEW_UPDT
EMP