在MySQL中选择“全部”列时如何实现细粒度访问控制?

时间:2018-09-07 09:48:05

标签: mysql security

我正在为我的老师做一些研究,将不安全的查询修改为安全的查询。 例如,查询:

| Liste Membres | LEVEL |
|---------------|-------|
|     :1:20:120 |     4 |

修改后的外观如下:

SELECT family_name, given_name FROM reg_user
INNER JOIN student
ON reg_user_id = student_id;

为了实现这种安全性,即每次在选择查询中有一列时,您都将这些列放在名为auth_read_name的安全SQL函数中。但是对于全选,我不知道如何实现此方法。例如:

SELECT CASE auth_read_name(reg_user_id, caller_id, caller_role)
WHEN 1 THEN reg_user.family_name END AS family_name,
CASE auth_read_name(reg_user_id, caller_id, caller_role)
WHEN 1 THEN reg_user.given_name END AS given_name
FROM Student
INNER JOIN Reg_User
on reg_user = reg_user_id;

0 个答案:

没有答案