Как я могу ограничить пользователя MySQL конкретными таблицами - PullRequest
18 голосов
/ 20 марта 2012

Как я могу ограничить 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, которые будут созданы для будущего использования, предоставляется доступ.

Ответы [ 2 ]

32 голосов
/ 20 марта 2012

Предполагая, что у пользователя нет текущих привилегий, вы можете сделать следующее

GRANT SELECT, INSERT, DELETE ON db_Payroll.tb_Users TO RestrictedUser@'%'
GRANT SELECT, INSERT, DELETE ON db_Payroll.tb_Employees TO RestrictedUser@'%'

В зависимости от того, какие именно привилегии вы хотите предоставить пользователю, вы можете изменить SELECT, INSERT, DELETE на что-то другое, например, ALL PRIVILEGES.

После этого не забудьте сбросить привилегии, чтобы они вступили в силу.

FLUSH PRIVILEGES;
5 голосов
/ 20 марта 2012

Вы можете предоставить доступ к отдельным таблицам, выполнив:

GRANT ALL ON db_Payroll.tb_Users to RestrictedUser@RestrictedHostName;

И аналогично для других таблиц.При необходимости используйте список операций вместо ALL.

Вы не можете предоставить доступ к отдельным таблицам, которые еще не существуют, без предоставления доступа ко всем таблицам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...