Какие привилегии я должен предоставить моему пользователю InnoDB MySQL? - PullRequest
4 голосов
/ 23 августа 2011

У меня есть пользователь MySQL (движок InnoDB), и мне было интересно, какие безопасные привилегии для него будут предоставлены? В настоящее время я предоставил ему разрешение на доступ к конкретной базе данных и эти привилегии:

SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, ALTER, CREATE TEMPORARY TABLES

Но так как это InnoDB, мне было интересно, нужно ли явно предоставить привилегию LOCK TABLES этому пользователю? Также я не уверен, нужно ли мне даже предоставить CREATE TEMPORARY TABLES для этого. Не могли бы вы помочь мне выяснить, какие привилегии мне следует предоставить? Hibernate будет иметь доступ к этому пользователю, поэтому мне также было интересно, чего будет достаточно для его правильной работы?

1 Ответ

3 голосов
/ 23 августа 2011

Вы должны предоставить минимальные привилегии, необходимые пользователям для использования системы.

Для тестирования обязательно используйте grant all on the database.

Заблокируйте вещи на время производства
Но в производстве вы должны предоставить только select на столах.
Предоставьте insert и update только для таблиц, в которые пользователь фактически должен добавить или изменить данные.
Create - это привилегия, которая почти никогда не нужна пользователям. (если вы не хотите, чтобы они разработали базу данных для вас: -) .
То же самое для index, alter, вы не хотите, чтобы ваши пользователи использовали эту власть.
create temp tables может быть в порядке, ЕСЛИ ваше приложение создает временные таблицы.

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