数据库授权更新

时间:2011-03-30 10:01:12

标签: mysql database-design authorization roles

如何设计数据库结构,以便数据库的许多用户可以添加,更新和删除可能包含某些数据库表中的外键的记录,并防止这些更改生效,直到用户的主管授权这些更改,其中一些更改或拒绝这些更改发生。该数据库最终将拥有许多这些用户和主管组。

最好的方法或系统是什么,我目前正在使用MySQL数据库。

1 个答案:

答案 0 :(得分:0)

视图。

所有对“实时”数据的访问都应通过视图进行。视图应仅选择那些已被“授权”的行。您将需要管理权限(SQL GRANT和REVOKE语句),因此应用程序代码无法通过直接转到表来绕过视图。

这可能并不明显,但这意味着所有用户界面代码也需要转到视图。例如,大多数用户界面将通过加载组合框或列表框,弹出模式对话框或沿着这些行的某些内容来减轻选择正确外键的负担。这些界面元素也需要从“授权”行的视图中获取数据。