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

来源:互联网 发布:c语言算法大全 编辑:程序博客网 时间:2024/05/21 13:56

存储过程:

CREATE OR REPLACE PROCEDURE P_MERGER_VIEWIS 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 sysdbaalter 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;将会话数调整到30alter profile third_user limit SESSIONS_PER_USER 30;




                                             
0 0
原创粉丝点击