首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python Desktop应用程序的数据库权限

Python Desktop应用程序的数据库权限
EN

Stack Overflow用户
提问于 2019-05-20 23:45:46
回答 1查看 299关注 0票数 1

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

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

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

由于MySQL已经成为MariaDB的分支,并且不再那么积极地开发,因此PostgreSQL看起来很有希望开始。我考虑过在PostgreSQL级别创建不同的用户,并让PostgreSQL处理权限(安装我的应用程序直接处理它们)。

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

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

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

感谢您的所有帮助;)

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56224280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档