日期:2014-05-16  浏览次数:20419 次

限制第三方系统接入时只能访问视图的权限
第一步:
通过带有dba权限的用户root登录plsql,在plsql中执行创建用户的操作
create user bytterTest identified by bytterTest;

第二步:
执行生成需要开放给第三方视图的sql
create or replace view INVEST_CLOCK_VIEWSTest as
select aca.account_id,acs.savein_id from  ac_account aca,ac_savein acs
where aca.account_id = acs.account_id;

第三步
创建用户成功后,对创建的用户授予权限
grant connect to bytterTest;
grant select on INVEST_CLOCK_viewsTest to bytterTest;

第四步
验证创建的用户是否只能查看授予的视图,执行sql语句
select count(*) from root. INVEST_CLOCK_VIEWSTest;
select * from ac_account;
如果count(*) 查询有结果及执行sql语句抛出表或视图不存在的的异常,表示
授予权限成功

第五步:
对开放给第三的数据库登陆用户做会话控制、防止第三方无意义的连接,损耗服务器性能开销
alter system set resource_limit =true scope=both sid='*';
--新建profile, 初始限制为1 ,用于测试。
create profile third_user limit SESSIONS_PER_USER 1 FAILED_LOGIN_ATTEMPTS unlimited;
alter user bytterTest profile third_user;
--将会话数调整到30
alter profile third_user limit SESSIONS_PER_USER 50
第六步:(备用操作)
清理第三方用户登陆的会话session,执行sql
select t.SID,t.SERIAL# from v$session t
得到SID、SERIAL#的值,然后再替换
alter system kill session 'sid,serial#' 语句中的sid,SERIAL#对应的值执行sql,
即可清理响应的sid对应的第三方登陆会话应用的session