我有一个表EMPLOYEES,我希望授予该表一个名为MANAGER的角色的访问权限。该角色将授予名为judy的用户。设置代码如下
(以系统身份登录)
end = flow.End(
task_title=_('End'),
task_description=_('End'),
success_url=reverse('my-details-page', args=(A('process.object.pk'),)),
)
但是,当我以judy身份登录时,无法从EMPLOYEES表中选择作为MANAGER:
(以Judy登录)
SQL> alter session set "_ORACLE_SCRIPT"=true;
Session altered.
SQL> create user judy identified by bob;
User created.
SQL> grant create session to judy;
Grant succeeded.
SQL> create role manager;
Role created.
SQL> grant select on employees to manager;
Grant succeeded.
SQL> alter role manager identified by manager_password;
Role altered.
SQL> grant manager to judy;
Grant succeeded.
为什么朱迪无法访问雇员表?
编辑:
以judy身份登录时,发出以下命令可解决此问题:
SQL> select * from system.employees;
select * from system.employees
*
ERROR at line 1:
ORA-00942: table or view does not exist
答案 0 :(得分:3)
尝试通过以下方式启用Judy会话中的角色:
SET ROLE manager
IDENTIFIED BY manager_password;
优先访问system.employees
。
或在授予角色后将角色manager
设置为朱迪的默认角色。
ALTER USER judy
DEFAULT ROLE manager;
或者也许
ALTER USER judy
DEFAULT ROLE ALL;
将授予Judy的所有角色设为默认。
答案 1 :(得分:1)
还尝试授予resource
:
SQL> grant resource to judy;
P.S。不要将system
用户用于测试,甚至不用于生产目的,而仅用于管理。