【发布时间】:2013-12-30 00:41:56
【问题描述】:
我正在尝试根据此语句解决 oracle 中的存储过程... oracle数据库的访问控制在哪里
a) 每个用户都可以在一天的特定时间限制内访问系统。例如,user1 可以在早上 8 点到 4 点访问系统,而 user2 可以在下午 3 点到 11 点访问系统。
b) 对于每个用户,帐户将在登录失败 3 次后被锁定。
c) 对于每个用户,空闲会话将在 10 分钟后终止。
d) 高权限用户一次最多可以有两个并发会话,而其他用户只能有一个并发会话。
我设法使用个人资料回答了 b、c、d 问题。然后我将用户更改为配置文件。存储过程不断给我编译错误。提前致谢 这是我的工作
create role roleUser;
grant create session to roleUser;
grant select on staff_data to roleUser;
create user user1 identified by abc123;
create user user2 identified by abc123;
--common user privilege
create profile userProfile limit
FAILED_LOGIN_ATTEMPTS 3
IDLE_TIME 10
SESSIONS_PER_USER 1
--high user privilege
create profile userHighProfile limit
FAILED_LOGIN_ATTEMPTS 3
IDLE_TIME 10
SESSIONS_PER_USER 2
alter user user1 profile userProfile;
alter user user2 profile userHighProfile;
grant roleUser to user1,user2;
show error;
create or replace trigger limit_logon
after logon on database
begin
if to_char(sysdate,'HH24') between 8 and 16 then
set roleUser to user1;
elsif to_char(sysdate,'HH24') between 15 and 23 then
set roleUser to user2;
else
revoke roleUser from user1;
revoke roleUser from user2;
end if;
end;
【问题讨论】:
-
The stored procedure keep give me compilation error.如果你也发布错误信息就好了。
标签: oracle security syntax-error access-control