PHP 8.1.28 Released!

Проектирование баз данных

Первый шаг — создать базу данных или выбрать готовую БД, которую предоставила третья сторона. При этом БД назначается владельцу, который выполнил запрос, который создал базу данных. Обычно только владельцу или суперпользователю разрешается выполнять действия с объектами в базе данных, а чтобы разрешить эти действия другим пользователям, пользователей наделяют привилегиями.

Приложения не должны подключаться к базе данных через учётную запись владельца или суперпользователя, потому что у этих пользователей есть права на выполнение произвольного запроса, например, на изменение схемы БД (например, удаление таблиц) или удаление всего содержимого структуры БД.

Пользователей БД разрешается создавать для каждой отдельной задачи приложения и ограничивать права пользователей на действия с объектами базы данных. Пользователю назначают только те привилегии, которые требуются для конкретных задач, и избегают ситуаций, при которых у одного и того же пользователя есть чрезмерные права на взаимодействие с базой данных. Тогда, если злоумышленники получат доступ к БД через учётные данные приложения, у злоумышленников будут права на изменение только тех данных, которые изменяло приложение.

add a note

User Contributed Notes 1 note

up
-45
krystian at jablonowski dot eu
2 years ago
It's a good practice to create a user account with absolutely minimal permissions. Whenever You need to select those permissions by columns or tables remember that some rules don't apply to security measures on Your server, like "We are all adults here" or "KISS - Keep It Simple Stupid". Personally, I prefer to create a minimal amount of users with only the necessary authorization to manipulate or collect data from DB.
Remember, that leak of data can have tremendous consequences, and rebuilding the trust of Your users is extremely hard to accomplish.
To Top