您的位置:首页 > 数据库 > Oracle

ORACLE存储过程生成视图,设置指定用户访问指定视图

2015-05-28 08:34 246 查看
存储过程:

CREATE OR REPLACE PROCEDURE P_MERGER_VIEW
IS
v_sql VARCHAR2(5000);
BEGIN
v_sql := 'CREATE OR REPLACE VIEW SIM_MERGER_VIEW (dvc_address,dvc_type,priority,total) AS
SELECT DVC_ADDRESS,  CASE WHEN  DVC_TYPE IS NULL THEN ''其他''
ELSE  DVC_TYPE END, PRIORITY, COUNT(1)
FROM SIM_EVENT PARTITION(P' ||
TO_CHAR(SYSDATE-1, 'yyyyMMdd') || ')
GROUP BY DVC_ADDRESS, PRIORITY,DVC_TYPE';
EXECUTE IMMEDIATE v_sql;
END P_MERGER_VIEW;
任务调度:每天凌晨1点执行

variable n number;
begin
dbms_job.submit(:n, 'P_MERGER_VIEW;', sysdate,'TRUNC(sysdate)+1+1/(24)');
commit;
end;/


任务执行:

begin
dbms_job.run(41);
end;


修改任务:
begin
dbms_job.change(62 ,'MY_JOP;', to_date('2011-08-01 22:00:00', 'yyyy-mm-dd hh24:mi:ss'),'sysdate+1');
commit;
end;


授权给某个用户查看指定的视图:

grant select on 视图名 to 用户名;


删除job:
begin
dbms_job.remove(41);
end;


限制用户登录数量:

最后还要对NORTHBOUND用户进行连接数的限制,以免第三方无限制的连接数据库,造成数据库SESSION暴涨:
conn / as sysdba
alter system set resource_limite=true scope=both sid='*';
新建profile, 初始限制为1 ,用于测试。
create profile third_user limit SESSIONS_PER_USER 1 FAILED_LOGIN_ATTEMPTS unlimited;
alter user NORTHBOUND profile third_user;
将会话数调整到30
alter profile third_user limit SESSIONS_PER_USER 30;



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: