Приходилось ли вам создавать или модифицировать роли пользователей (например, в БД) на продакшен-среде (PROD)?

«Приходилось ли вам создавать или модифицировать роли пользователей (например, в БД) на продакшен-среде (PROD)?» — вопрос из категории Управление тестированием, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, такие операции выполнялись, но строго в рамках формализованного процесса изменений (Change Management) и только после всесторонней проверки в staging-среде.

Типичный процесс и меры предосторожности:

  1. Планирование и тестирование: Изменение (например, SQL-скрипт) сначала разрабатывалось и выполнялось в тестовой среде, идентичной PROD.
  2. Ревью и согласование: Скрипт проходил ревью командой (разработчик, DBA, тестировщик). Получалось formal approval.
  3. Резервное копирование (Backup): Перед выполнением на PROD обязательно создавался бэкап целевой базы данных или конкретных настроек прав.
  4. План отката (Rollback Plan): Всегда готовился и согласовывался откатный скрипт.
  5. Окно изменений: Выполнение происходило в запланированное время минимальной нагрузки, часто с мониторингом.

Пример создания роли только для чтения в PostgreSQL:

-- 1. Создание роли с паролем
CREATE ROLE analyst_readonly WITH LOGIN PASSWORD 'strong_password_here';

-- 2. Выдача прав на чтение всем таблицам в схеме public
GRANT CONNECT ON DATABASE my_database TO analyst_readonly;
GRANT USAGE ON SCHEMA public TO analyst_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO analyst_readonly;

-- 3. Важно: Настройка прав для будущих таблиц
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT ON TABLES TO analyst_readonly;

После применения изменений проводилась проверка: подключение под новой ролью и попытка выполнить разрешенные и запрещенные операции (SELECT, INSERT, DELETE).