Пользователи базы данных и управление доступом
Создавайте пользователей баз данных, предоставляйте определённые привилегии и внедряйте надёжные механизмы управления доступом к базам данных.
«Пользователи базы данных и управление доступом» — бесплатный урок Linux Server Deployment & SSH Mastery на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Linux Server Deployment & SSH Mastery, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.
Введение в управление пользователями баз данных
Добро пожаловать в раздел управления пользователями баз данных и контроля доступа! В этом уроке мы научимся управлять тем, кто и какие действия может выполнять с вашей базой данных.
Представьте, что вы создаёте разные учётные записи на компьютере, каждой из которых назначены определённые разрешения.
Почему важен контроль доступа
Правильный контроль доступа жизненно важен для безопасности и целостности базы данных. Он помогает:
- предотвращать несанкционированный доступ: подключаться могут только разрешённые пользователи;
- соблюдать принцип минимальных привилегий: пользователи получают только те разрешения, которые им действительно необходимы;
- проводить аудит действий: отслеживать, кто вносил изменения в данные.
Создание нового пользователя базы данных
Сначала создадим новую учётную запись пользователя в PostgreSQL. Этому пользователю понадобятся имя пользователя и надёжный пароль.
Выполните эту команду в клиенте PostgreSQL, например в psql:
CREATE USER coddykit_analyst WITH PASSWORD 'SuperSecureP@ssw0rd!';Предоставление привилегий только для чтения
Теперь, когда у нас есть пользователь, предоставим ему разрешения. Часто начинают с доступа только для чтения к определённым таблицам.
Команда GRANT SELECT позволяет пользователю читать данные из таблицы:
GRANT SELECT ON TABLE public.sales_data TO coddykit_analyst;Разрешение изменять данные
Что делать, если пользователю нужно добавлять, изменять или удалять данные? Вы предоставите привилегии INSERT, UPDATE или DELETE.
Вот как разрешить добавление и обновление записей:
GRANT INSERT, UPDATE ON TABLE public.customer_info TO coddykit_analyst;Что означает ALL PRIVILEGES
Опция ALL PRIVILEGES предоставляет все доступные разрешения для объекта базы данных. Используйте её с особой осторожностью!
GRANT ALL PRIVILEGES ON DATABASE my_db TO admin_user;— мощная команда.WITH GRANT OPTION: позволяет получателю предоставлять эти же привилегии другим пользователям. При неосторожном использовании это создаёт угрозу безопасности.
Отзыв привилегий
Иногда разрешения пользователя необходимо ограничить или полностью удалить. Команда REVOKE делает именно это.
Например, чтобы запретить обновление сведений о клиентах:
REVOKE UPDATE ON TABLE public.customer_info FROM coddykit_analyst;Просмотр разрешений пользователей
Важно проверять, какими привилегиями пользователь действительно обладает. Для этого можно выполнить запрос к информационной схеме базы данных.
Этот запрос показывает привилегии определённого пользователя для конкретной таблицы:
SELECT grantee, privilege_type
FROM information_schema.role_table_grants
WHERE table_schema = 'public' AND table_name = 'sales_data' AND grantee = 'coddykit_analyst';Удаление пользователя базы данных
Если учётная запись пользователя больше не нужна, рекомендуется удалить её, чтобы снизить потенциальные риски безопасности.
Используйте команду DROP USER, чтобы удалить пользователя из системы базы данных:
DROP USER coddykit_analyst;Рекомендации по безопасности
Всегда соблюдайте следующие рекомендации для надёжной защиты базы данных:
- Минимальные привилегии: предоставляйте только необходимые разрешения.
- Надёжные пароли: используйте сложные и уникальные пароли.
- Регулярные аудиты: периодически проверяйте учётные записи пользователей и их привилегии.
- Доступ на основе ролей: создавайте роли с определёнными разрешениями и назначайте пользователей этим ролям.
Проверьте свои знания
Новому пользователю report_viewer нужно разрешить читать данные из таблицы daily_logs, а также удалять из неё старые записи. Какая последовательность команд это обеспечит?
Повторение: пользователи и контроль доступа
Отличная работа! Вы изучили основы управления пользователями баз данных и контроля доступа. Мы рассмотрели:
- создание и удаление пользователей баз данных;
- предоставление и отзыв определённых привилегий, таких как
SELECT,INSERT,UPDATEиDELETE; - понимание мощных опций, таких как
ALL PRIVILEGESиWITH GRANT OPTION; - рекомендации по защите базы данных с помощью правильного управления пользователями.
Эти навыки необходимы для поддержания безопасной и хорошо управляемой серверной среды!
Часто задаваемые вопросы
Урок «Пользователи базы данных и управление доступом» бесплатный?
Да — полный текст урока «Пользователи базы данных и управление доступом» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Linux Server Deployment & SSH Mastery, подпишись на CoddyKit PRO. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.
Чему я научусь в уроке «Пользователи базы данных и управление доступом»?
Создавайте пользователей баз данных, предоставляйте определённые привилегии и внедряйте надёжные механизмы управления доступом к базам данных. Ты практикуешь Linux Server Deployment & SSH Mastery с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Linux Server Deployment & SSH Mastery?
Предыдущий опыт не требуется. Linux Server Deployment & SSH Mastery на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Пользователи базы данных и управление доступом»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Linux Server Deployment & SSH Mastery?
Да. Каждый урок Linux Server Deployment & SSH Mastery включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Установка PostgreSQL/MySQL
- Пользователи базы данных и управление доступом
- Защищённые подключения к базе данных
- Стратегии резервного копирования и восстановления баз данных