我开始学习开发数据库应用程序的基础知识(我想专门学习 MySQL),但我无法确定应用程序的结构应该如何。假设我的系统为学校的学生提供服务(记录成绩等),其中客户端是一个用 C++/Qt 编写的 GUI 应用程序,通过互联网与我的服务器计算机通信。
我的问题是实现这个的自然/正确方法是什么?
- 我是否将 SQL 查询直接封装在 GUI 程序中,以及 从而使每个学生都成为 MySQL 数据库的用户,从而 为每个学生分配一个数据库用户?
- 或者封装应该发生在我的服务器端应用程序中 write 表示 GUI 应用程序和数据库之间的链接 服务器? (即服务器端应用程序是 MySQL系统。)
也就是说,谁是MySQL的用户?我的服务器端应用程序或我的客户端应用程序的用户?
最佳答案
在这两种情况下(宽客户端——客户端-DB 或瘦客户端——客户端-服务器)只有 1 个 MySQL 用户就足够了。 您会将其用户名和密码存储在应用程序设置中(通常对普通学生/客户隐藏)。 您会将这些权利授予应用程序用户名,而不是学生。
控制用户权限是应用程序的作用。
安全: 对于瘦客户端,它通常是安全的,但它会引入使用 API key 的需要,这有其危险性。 对于宽客户端架构来说,这已经够危险了,所以:
- 通常,此类应用程序在内部工作
- MySQL 用户拥有保护数据不被完全破坏的权利(至少禁止删除表)。
- 授予用户在特定主机上的权限
- 每小时或每天制作备份副本取决于 尺寸
- 最好存储密码,但不要以公开形式存储 加密
关于mysql - MySQL 中的用户是谁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48082592/