如何处理数据窗口中的数据库列权限,以避免“列上的SELECT权限被拒绝”....
我有一个显示表列的数据窗口,某些列的用户/角色权限不同,并根据数据库级别的业务规则进行设置,以避免覆盖应用程序权限...
问题是登录系统的用户在某些列上没有“选择权限”会收到错误消息“在列xyz上选择权限被拒绝...”并且数据窗口将不会检索任何信息而不是检索只有列的行具有“选择”权限...
有没有人知道如何处理类似情况下使用datawindow的列权限?
答案 0 :(得分:1)
我见过没有简单的方法来解决这个问题。
不确定您是否在寻找创意,但这取决于有多少可能的变体以及您想要制作解决方案的动态。
我从未在使用DBMS级别的列级权限的商店工作,但假设已针对各种角色锁定了一组列。如果有少数(比方说3)变化,那么我可能只需要制作三个版本的数据对象,并在检索之前换出相应的版本。
否则,更难的选择是在通过角色或以某种方式查询系统表之前动态修改数据对象。
我从未尝试过但又不确定它是否会起作用的另一个想法是从SQL动态创建数据对象,我相信该函数被称为createfromsql,并且只使用select * from xyz但这只是可行的,如果它是仅用于显示,否则您将进行大量动态修改以使数据对象可更新并设置所有可更新列。
祝你好运。