Я пытаюсь предоставить разрешения доступа определенному пользователю, у которого есть доступ к «менеджеру». Они могут SELECT
и UPDATE
, но только для людей в их собственной группе. БД составляет redflame
, а таблица payroll
.Разрешение гранта MySQL на основе значения столбца?
Часть таблицы такова:
+------+---------+--------+-----------+--------+
| Dept | Manager | Name | Birthdate | Salary |
+------+---------+--------+-----------+--------+
| 1 | Y | BOB | 1/1/1 | 50000 |
| 1 | N | BILL | 2/2/2 | 40000 |
| 1 | N | BART | 3/3/3 | 70000 |
| 2 | Y | JIM | 4/4/4 | 40000 |
| 2 | N | JANET | 5/5/5 | 50000 |
...
Я хотел, чтобы только SELECT
и UPDATE
привилегии менеджера, но только в своей группе. Я попробовал,
GRANT SELECT (Dept, Manager, Name, Birthdate),
UPDATE (Dept, Manager, Name, Birthdate)
ON redflame.payroll WHERE Dept = '1'
TO 'Bob'@'localhost';
Я знаю, что это не будет работать, но как можно реализовать Bob
«s разрешения на основе его Dept
?
Любая помощь была бы принята с благодарностью.
Благодарим за предложение. Я получил этот код для работы: 'CREATE VIEW Dept1 as SELECT * FROM redflame.payroll WHERE Dept = '1';' и затем смог реализовать обычные привилегии «GRANT». Я также нашел предложение в другой статье [ЗДЕСЬ] (http://stackoverflow.com/questions/1840494/does-deleting-row-from-view-delete-row-from-base-table-mysql), где он указывает ' Некоторые виды обновляются. То есть вы можете использовать их в таких инструкциях, как UPDATE, DELETE или INSERT, чтобы обновить содержимое базовой таблицы. ' – jarsever