利用ORACLE对数据权限进行控制
2018-04-10 08:09
567 查看
应用场景:河南决策子系统,智能分析平台
详情:在智能分析平台中因为利用JDBC直连数据库,无法对数据权限进行有效的控制,但介于数据安全性,登录用户的只能看到其所属税务机关和下级税务机关的数据,所以借助dm_gy_swjg中的SWJG_DM税务机关代码) 和SJSWJGDM(上级税务机关代码)数据查询出,当前税务机关下的所有税务机关。
数据表内容如下:
1.例如查询出郑州市(24101000000)所有的税务机关,使用SQL语句如下:
2.CONNECT BY子句伪列的应用
LEVEL:查询节点层次,从1开始。CONNECT_BY_ISLEAF:查询节点是否是叶子节点,是则为1,不是则为0
3.查询递归路径
通过SYS_CONNECT_BY_PATH可以查询出各个结点从根节点到此节点的路径
详情:在智能分析平台中因为利用JDBC直连数据库,无法对数据权限进行有效的控制,但介于数据安全性,登录用户的只能看到其所属税务机关和下级税务机关的数据,所以借助dm_gy_swjg中的SWJG_DM税务机关代码) 和SJSWJGDM(上级税务机关代码)数据查询出,当前税务机关下的所有税务机关。
数据表内容如下:
1.例如查询出郑州市(24101000000)所有的税务机关,使用SQL语句如下:
SELECT * FROM dm_gy_swjg START WITH swjg_dm='24101000000' CONNECT BY PRIOR swjg_dm=sjswjg_dm
2.CONNECT BY子句伪列的应用
LEVEL:查询节点层次,从1开始。CONNECT_BY_ISLEAF:查询节点是否是叶子节点,是则为1,不是则为0
SELECT t.swjg_dm,t.swjgmc,LEVEL,CONNECT_BY_ISLEAF FROM dm_gy_swjg t START WITH t.swjg_dm='24101000000' CONNECT BY PRIOR t.swjg_dm=t.sjswjg_dm
3.查询递归路径
通过SYS_CONNECT_BY_PATH可以查询出各个结点从根节点到此节点的路径
SELECT t.swjg_dm,t.swjgmc,LEVEL,CONNECT_BY_ISLEAF,SUBSTR(SYS_CONNECT_BY_PATH(swjg_dm,'->'),3) FROM dm_gy_swjg t START WITH t.swjg_dm='24101000000' CONNECT BY PRIOR t.swjg_dm=t.sjswjg_dm
相关文章推荐
- 利用Oracle的enable validate约束进行数据检查
- 利用客户端代理和SOAPHeader进行Webservice权限控制
- 利用开源SharePoint Permission Extension插件对SharePoint 的列表进行权限控制!
- 利用PLSQL Developer对oracle中的数据进行备份恢复
- v5中使用动态宏和会话变量对数据权限进行控制
- Oracle 利用dbms_backup_restore恢复测试(数据文件和控制文件全部丢失了)
- 如何利用Oracle自带的MD5对数据进行加密
- Oracle GoldenGate 安全性配置系列:利用 CMDSEC 文件控制 GoldenGate 命令的用户访问权限
- Spring Security-利用URL地址进行权限控制
- 如何在struts2中利用session进行权限控制
- Oracle VPD实现数据细粒度访问(更好的权限控制)
- 利用filter()过滤器进行访问权限控制
- Oracle 函数 “数据控制,指定某些人只能查看他权限范围内的信息”
- 利用expdp/impdp数据泵对oracle进行数据迁移
- Oracle中利用undo进行数据的恢复操作
- Oracle 12c利用数据泵DataPump进行Oracle数据库备份
- oracle用老的控制文件备份恢复新建的数据文件
- ASP.NET对HTML元素进行权限控制(二)
- WebGIS项目中利用mysql控制点库进行千万条数据坐标转换时的分表分区优化方案
- EF Core利用Transaction对数据进行回滚保护