15%

Заощаджуйте 15% на всіх послугах хостингу

Перевірте свої навички та отримайте Знижку на будь-який тарифний план

Використовуй код:

Skills
Почати
04.10.2024

Про пароль за замовчуванням для PostgreSQL

При встановленні PostgreSQL одним з перших питань, яке часто задають нові користувачі, є: “Який пароль за замовчуванням для PostgreSQL?” Відповідь трохи складніша, ніж очікувалося, тому що за замовчуванням PostgreSQL **не** встановлює попередньо визначений пароль для користувача за замовчуванням. Замість цього він покладається на локальні методи автентифікації, такі як “peer” або “ident” автентифікація, залежно від вашої системи і конфігурації. Адміністративний користувач за замовчуванням, створений під час інсталяції, зазвичай називається `postgres`. Однак цей користувач не має пароля, встановленого за замовчуванням, і доступ до нього зазвичай обмежується локальною машиною. Для взаємодії з базою даних від імені користувача `postgres` вам зазвичай потрібно перейти до системного облікового запису користувача `postgres` за допомогою команди на кшталт `sudo -i -u postgres`, а потім отримати доступ до командної оболонки PostgreSQL через `psql`.

Щоб дозволити віддалений доступ або вхід за паролем, ви повинні явно задати пароль для користувача `postgres` за допомогою команд SQL (наприклад, `ALTER USER postgres WITH PASSWORD ‘yourpassword’;`) і змініть файл `pg_hba.conf`, щоб дозволити автентифікацію паролем. Це важливі кроки при налаштуванні PostgreSQL для виробничих середовищ. Розуміння того, як працює автентифікація в PostgreSQL, має вирішальне значення як для функціональності, так і для безпеки. Завжди дотримуйтесь найкращих практик, встановлюючи надійні паролі, обмежуючи доступ за допомогою правил брандмауера і регулярно переглядаючи налаштування автентифікації, щоб захистити вашу базу даних від несанкціонованого доступу

У PostgreSQL немає пароля за замовчуванням

На відміну від деяких систем баз даних, PostgreSQL не призначає пароль за замовчуванням для облікового запису суперкористувача бази даних(postgres) під час встановлення. Замість цього, вона використовує безпечний підхід, що вимагає від користувача створювати паролі і керувати ними явно. Ось як працює початкове налаштування і як ви можете отримати доступ до бази даних

  1. Початковий суперкористувач: Після встановлення PostgreSQL система створює обліковий запис суперкористувача за замовчуванням під назвою postgres. Цей обліковий запис має повний контроль над базою даних.
  2. Немає попередньо визначеного пароля: З коробки PostgreSQL не має пароля, призначеного користувачеві postgres. Залежно від вашої операційної системи, ви можете увійти до PostgreSQL без пароля, якщо ви використовуєте той самий обліковий запис ОС, який було використано для встановлення PostgreSQL (зазвичай postgres або root).

Перший доступ до PostgreSQL

Щоб отримати доступ до бази даних PostgreSQL після встановлення, виконайте такі дії

  • Linux: У багатьох системах Linux ви можете переключитися на користувача postgres через командний рядок і отримати доступ до PostgreSQL без необхідності введення пароля
    sudo -i -u postgres
    psql

    Опинившись у запрошенні PostgreSQL, ви можете створити пароль для користувача postgres

    SQL
    ALTER USER postgres PASSWORD 'yourpassword';
  • Windows: У Windows процес встановлення зазвичай запитує пароль для користувача postgres під час процесу налаштування. Якщо ви забули або пропустили встановлення пароля, ви можете скинути його за допомогою адміністративного облікового запису.

Налаштування автентифікації за допомогою пароля

Автентифікацією PostgreSQL керує файл pg_hba.conf. Цей файл визначає, як користувачі автентифікуються, включаючи те, чи повинні вони використовувати пароль, або чи дозволені інші методи (наприклад, однорангова автентифікація). Наприклад, якщо ви використовуєте автентифікацію за допомогою пароля і вам потрібно встановити пароль для користувача postgres, переконайтеся, що у файлі pg_hba.conf є наступний рядок, щоб примусово ввести пароль для входу в систему для локальних з’єднань

local all postgres md5

Цей параметр вимагає від користувача postgres надавати хешований пароль MD5 при підключенні

Скидання пароля postgres

Якщо ви забули пароль до postgres, ви можете скинути його, виконавши такі дії

  1. Змініть pg_hba.conf, щоб дозволити довірчу автентифікацію: У вашому файлі pg_hba.conf тимчасово змініть метод довіри для користувача postgres для локальних з’єднань. Це дозволить вам входити до системи без пароля
    local all postgres trust
  2. Перезапустіть PostgreSQL: Після редагування файлу перезапустіть службу PostgreSQL
    sudo service postgresql restart
  3. Змінити пароль: Тепер ви можете отримати доступ до PostgreSQL без пароля і змінити пароль postgres
    psql -U postgres
    ALTER USER postgres PASSWORD 'newpassword';
  4. Відмініть зміни в pg_hba.conf: Після встановлення пароля відмініть зміни у файлі pg_hba.conf, щоб знову увімкнути автентифікацію за паролем.

Кращі практики для керування паролями PostgreSQL

  • Надійні паролі: Завжди створюйте надійний пароль для користувача postgres, щоб захистити вашу базу даних.
  • Управління ролями: Замість того, щоб використовувати суперкористувача postgres для повсякденних операцій, створіть нові ролі з обмеженими привілеями. Це мінімізує ризик, якщо облікові дані буде скомпрометовано.
  • Оновлення методів автентифікації: Регулярно переглядайте і оновлюйте файл pg_hba.conf, щоб переконатися, що ви використовуєте безпечні методи автентифікації (наприклад, scram-sha-256).
  • Регулярна зміна паролів: Періодично змінюйте паролі, особливо для облікових записів суперкористувачів.

Висновок

З міркувань безпеки PostgreSQL не має попередньо визначеного пароля за замовчуванням. Після встановлення вам потрібно встановити пароль для користувача postgres вручну. Розуміння системи автентифікації PostgreSQL та найкращих практик управління паролями допоможе вам захистити вашу базу даних від несанкціонованого доступу

15%

Заощаджуйте 15% на всіх послугах хостингу

Перевірте свої навички та отримайте Знижку на будь-який тарифний план

Використовуй код:

Skills
Почати