Как я могу ограничить пользователя MySQL конкретными таблицами
Как я могу ограничить user_account в базе данных MySQL конкретными таблицами. Пример:
UserName: RestrictedUser
DatabaseName: db_Payroll
TableName:
tb_Employees
tb_Users
tb_Payroll_YYMMDD
tb_Payroll_Processed
Я хочу ограничить "RestrictedUser" только tb_Users
и tb_Employees
, а остальные таблицы db_Payroll
, которые будут созданы для будущего использования, будут иметь доступ.
Ответы
Ответ 1
Предполагая, что у пользователя нет текущих привилегий, вы можете сделать следующее
GRANT SELECT, INSERT, DELETE ON db_Payroll.tb_Users TO [email protected]'%'
GRANT SELECT, INSERT, DELETE ON db_Payroll.tb_Employees TO [email protected]'%'
В зависимости от того, какие привилегии вы хотите предоставить пользователю, вы можете изменить SELECT, INSERT, DELETE
на что-то еще, например. ALL PRIVILEGES
.
Впоследствии, не забудьте сбросить привилегии, чтобы они стали эффективными.
FLUSH PRIVILEGES;
Ответ 2
Вы можете предоставить доступ к отдельным таблицам, запустив:
GRANT ALL ON db_Payroll.tb_Users to [email protected];
И аналогично для других таблиц. Используйте список операций вместо ALL
, если это необходимо.
Вы не можете предоставить доступ к отдельным таблицам, которые еще не существуют, не предоставляя доступ ко всем таблицам.