我正在开发一个由我所在城市的几所大学共享的网络应用程序。职员和办公室职员的累计数量将在几万左右。
我创建了诸如“录取员”,“帐户人员”等用户,并定义了每种用户类型都可以访问的表格(例如“入场许可”)职员只能访问admission_table而不能访问payment_table。
我已经强制执行程序化安全性,当一个大学的录取员登录时,他可以删除在admission_table中的条目,其中student_college字段等于admission_clerk组织。我可以通过在dbms中创建用户来实现相同目的吗?
答案 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不支持行级安全性。您可以通过使用视图解决此问题,但这会带来某些怪癖。我建议坚持在应用程序级别实现行级安全性。