我正在编写一个带有 postgresql 9.2 数据库后端的 C++ 应用程序。是一款会计软件。它是一个具有权限分离功能的多用户应用程序。
我需要帮助来实施用户帐户系统。用户的权限不必相互排斥。我应该在应用程序级别还是在数据库级别实现它?
公司目前不是很大。假设大约有 15-20 个办公室,每个办公室平均有 10 个程序用户。
- 我可以利用 postgres 中的角色来实现这个吗?它会变得过于乏味、难以管理,还是这种方法存在一些缺陷?
- 如果我通过应用程序路由,我如何存储用户拥有的权限集?二进制字符串就足够了吗?如果以后有额外的权限,我该如何合并它们?我需要做些什么来确保没有安全问题?在这种方法中,我假设应用程序连接到最高特权用户所需的特权。
- 这两种方法的某种组合?还是完全不同的东西?
欢迎所有建议和争论。