甲骨文用户权限
Oracle user privilege
我创建了两个新用户和一个新角色。给架构 A 中一个 table 角色的 select 权限,并将此角色分配给用户 b。与该用户一起针对架构 a 中的 table 发出 select 查询时,我遇到了 table 或未找到视图的问题。
创建用户 READUSER1,由 readuser1 识别;
创建由 readuser2 识别的用户 READUSER2;
创建角色 READONLY_USER 由 readonlyuser 识别;
GRANT select ON READUSER1.TESTA TO READONLY_USER;
向 READUSER2 授予 READONLY_USER;
现在来自 READUSER2 会话:
SELECT * 来自 READUSER1.TESTA > 00942.00000 - "table or view does not exist"
我假设您在 readUser1
模式中成功创建了 table,尽管您没有显示该步骤。
当以 readUser2
身份登录时,会话启用了哪些角色?
select *
from session_roles
我敢打赌该会话未启用该角色。通常,您不会为角色设置密码,因为您通常希望这些角色在用户登录后立即可用。但是,如果您为角色设置密码,那么每次用户创建新会话时,他们必须通过指定密码来明确启用该角色。这在一些不寻常的情况下非常有用,但它不是常态。
假设readonly_user
没有出现在session_roles
中,可以使用set role
命令启用角色
set role readonly_user
identified by readonlyuser;
完成后,角色应该出现在 session_roles
中,您应该可以查询 table.
不过,通常情况下,您会通过省略 identified by
子句
创建一个普通角色而不是受密码保护的角色
create role readonly_user;
我创建了两个新用户和一个新角色。给架构 A 中一个 table 角色的 select 权限,并将此角色分配给用户 b。与该用户一起针对架构 a 中的 table 发出 select 查询时,我遇到了 table 或未找到视图的问题。
创建用户 READUSER1,由 readuser1 识别; 创建由 readuser2 识别的用户 READUSER2;
创建角色 READONLY_USER 由 readonlyuser 识别;
GRANT select ON READUSER1.TESTA TO READONLY_USER;
向 READUSER2 授予 READONLY_USER;
现在来自 READUSER2 会话:
SELECT * 来自 READUSER1.TESTA > 00942.00000 - "table or view does not exist"
我假设您在 readUser1
模式中成功创建了 table,尽管您没有显示该步骤。
当以 readUser2
身份登录时,会话启用了哪些角色?
select *
from session_roles
我敢打赌该会话未启用该角色。通常,您不会为角色设置密码,因为您通常希望这些角色在用户登录后立即可用。但是,如果您为角色设置密码,那么每次用户创建新会话时,他们必须通过指定密码来明确启用该角色。这在一些不寻常的情况下非常有用,但它不是常态。
假设readonly_user
没有出现在session_roles
中,可以使用set role
命令启用角色
set role readonly_user
identified by readonlyuser;
完成后,角色应该出现在 session_roles
中,您应该可以查询 table.
不过,通常情况下,您会通过省略 identified by
子句
create role readonly_user;