python 桌面数据库_Python桌面应用程序的数据库权限

我最近开始开发一个桌面python应用程序,我想知道更多的专家会如何处理这个问题。

我曾经使用PHP + MySQL开发(大约5 - 10年前)Web应用程序,因为代码/程序位于用户无法访问的服务器上(网页除外),我可以简单地将用户/组权限存储在数据库中的表中,例如users,users_groups,users_permissions等。然后,如果用户有权访问该页面/更新该数据库中的记录,我会检查每个页面加载。

使用桌面应用程序,用户可以访问可执行文件(可以相对容易地反编译为源代码,用Python编写),这种方法可能会有很大不同。

由于MySQL已经分叉到MariaDB并且不再那么积极开发,PostgreSQL看起来很有希望开始。我想在PostgreSQL级别创建不同的用户并让PostgreSQL处理权限(我的应用程序的instad直接处理它们)。

但是,这只允许将权限调整到表级别。将允许用户在表中创建/删除/更新记录,但是没有可用的进一步控制。AFAIK你不能告诉“让这个用户只更新他自己的记录”或“这个用户只能删除这个组中的记录”,或者“来自X组的用户只能更新他们自己的记录,而来自Y组的用户可以更新每个人的记录” 。

我对如何处理这类问题的理解是在用户和位于服务器上的数据库之间放置某种中间件应用程序,例如:桌面应用程序<----->服务器端应用程序权限处理程序< ----->数据库

服务器端权限处理程序可以像为每个查询添加“WHERE user = ...”以及更高级的东西一样简单(首先检查存储在数据库中的用户权限,根据该决定是否允许用户执行查询或拒绝它)。我认为这是所有桌面应用程序的常见问题,因此预计会存在这样的服务器端应用程序。我错过了一些明显的东西,或者PostgreSQL可以进行更详细的微调吗?

谢谢你的帮助 ;)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值