免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3135 | 回复: 5
打印 上一主题 下一主题

只禁止使用DBMS函数,能否完全保证系统的安全?请问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-07 16:32 |只看该作者 |倒序浏览
因为最近在做一个小项目,目的就是要把系统里面的所有表,以客户容易理解的方式提供给客户使用,这些客户一般都是公司里的领导,所以要做到尽可能的容易扩展,参数什么的就不能使用PreparedStatement了
虽然查询是提供全面的权限,但是在修改或删除时希望做限制
因此客户能够使用的SQL只能是select开头
另外系统中包含了insert,delete,alter system kill session等开头的操作一般客户是不能生成这样的语句的,也就是说系统有这个权限,但是希望用户不要跨越了自己的权限,只要使用select 就好
偶测试了一下,jdbc中select是不支持使用;分割的多条语句同时提交,同时我也禁止了语句中包含dbms_字样的任何语句,请问这样能保证安全吗?谢谢

论坛徽章:
0
2 [报告]
发表于 2011-06-07 20:08 |只看该作者
回复 1# ashlv


    既然客户的sql只能是select开头,为什么不只给客户查询权限呢?

论坛徽章:
0
3 [报告]
发表于 2011-06-08 08:20 |只看该作者
回复 2# tanyangxf


    谢谢
因为这个系统,对于一些复杂的查询语句会按照一定的规则进行SQL的拆分和重构,有时还会使用临时表来进行优化,避免一些很难使用HINTS优化的语句直接就挂掉,而因为使用了连接池这个临时表还不能使用global temporary这样东西,所以需要insert 和delete来处理,还有就是这个还需要支持一个保存当前查询方便日后直接调用或编辑的功能,所以也需要insert 和delete还有update

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
4 [报告]
发表于 2011-06-08 12:30 |只看该作者
做好权限处理,应该可以的。

论坛徽章:
0
5 [报告]
发表于 2011-06-08 16:39 |只看该作者
不利用Oracle已有的功能,自己开发很麻烦

论坛徽章:
0
6 [报告]
发表于 2011-06-08 17:01 |只看该作者
{:3_182:}{:3_182:}{:3_182:}{:3_182:}{:3_182:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP