利用oracle临时表进行的权限控制

背景:不表中存放业务数据,某用户只能根据起用户所在的机构查询本机构和本机构下级机构的数据。

一般的解决方案:在查询sql里面做文章,根据当前用户,找出所在机构和下级机构,然后再在业务数据表进行过滤。这种方式优点是比较直观,缺点是sql写起来啰嗦重复,且容易出错。

新的解决方案:通过view进行业务数据的过滤,创建view时需要知道当前用户的基本信息,通过该信息即可创建对应用户的不同用户的view。

现在的关键点在于如何将基本信息明确保存起来,作用创建view。可利用oracle的会话级临时表,在系统获取数据库连接时将用户的机构和下级机构插入到该临时表,然后通过已经该表和业务表即可建立好用户的view。同时给该view创建同义词,提供访问透明性。

猜你喜欢

转载自shuidexiongdi.iteye.com/blog/1405339