我正在为我的老师做一些研究,将不安全的查询修改为安全的查询。 例如,查询:
| 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;