在数据库中定义用户角色

时间:2014-04-02 12:48:09

标签: mysql sql sql-server rdbms user-roles

我正在开发一个由我所在城市的几所大学共享的网络应用程序。职员和办公室职员的累计数量将在几万左右。

我创建了诸如“录取员”,“帐户人员”等用户,并定义了每种用户类型都可以访问的表格(例如“入场许可”)职员只能访问admission_table而不能访问payment_table。

我已经强制执行程序化安全性,当一个大学的录取员登录时,他可以删除在admission_table中的条目,其中student_college字段等于admission_clerk组织。我可以通过在dbms中创建用户来实现相同目的吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试将admission_tables乘以一个主表admission_table和列

id, college_code, reference_id

最后一个字段引用了学院的admission_table

所以你将拥有多个admission_table_,每个大学都有相同的结构。

因此,您可以使用表角色。

这是一种复杂的方式,你不能得到多个表数据的汇总,但它可以工作。

更新

或者,您可以阻止从表中删除并创建一个特殊的secured_delete()STORED PROCEDURE。因此,录取员1不能直接删除,但只能调用secured_delete_college1()(从评论中删除)

答案 1 :(得分:0)

MySQL不支持行级安全性。您可以通过使用视图解决此问题,但这会带来某些怪癖。我建议坚持在应用程序级别实现行级安全性。