【发布时间】:2011-07-25 23:36:20
【问题描述】:
如何设计数据库结构,以便数据库的多个用户可以添加、更新和删除可能包含某些数据库表中的外键的记录,并防止这些更改生效,直到用户的主管授权这些变化,其中一些变化或拒绝这些变化发生。数据库最终将拥有许多这样的用户和主管组。
什么是最好的方法或系统,我目前正在使用 MySQL 数据库。
【问题讨论】:
标签: mysql database-design authorization roles
如何设计数据库结构,以便数据库的多个用户可以添加、更新和删除可能包含某些数据库表中的外键的记录,并防止这些更改生效,直到用户的主管授权这些变化,其中一些变化或拒绝这些变化发生。数据库最终将拥有许多这样的用户和主管组。
什么是最好的方法或系统,我目前正在使用 MySQL 数据库。
【问题讨论】:
标签: mysql database-design authorization roles
观看次数。
所有对“实时”数据的访问都应通过视图进行。视图应该只选择那些已经“授权”的行。您需要管理权限(SQL GRANT 和 REVOKE 语句),以便应用程序代码无法通过直接访问表来绕过视图。
这可能并不明显,但这意味着所有用户界面代码也需要转到视图。例如,大多数用户界面会通过加载组合框或列表框、弹出模式对话框或类似的方式来减轻选择正确外键的负担。这些界面元素也需要从“授权”行的视图中获取数据。
【讨论】: