Контакти

Postgresql підключення до віддаленої бд. Підключення бази даних PostgreSQL. Зміна ролей користувача

В утиліті sudo, використовуваної для організації виконання команд від імені інших користувачів, виявлена \u200b\u200bуразливість (CVE-2019-18634), яка дозволяє підвищити свої привілеї в системі. Проблема [...]

Випуск WordPress 5.3 покращує і розширює представлений в WordPress 5.0 редактор блоків новим блоком, більш інтуїтивним взаємодією і поліпшеною доступністю. Нові функції в редакторі [...]

Після дев'яти місяців розробки доступний мультимедіа-пакет FFmpeg 4.2, що включає набір додатків і колекцію бібліотек для операцій над різними мультимедіа-форматами (запис, перетворення і [...]

  • Нові функції в Linux Mint 19.2 Cinnamon

    Linux Mint 19.2 є випуском з довгостроковою підтримкою, який буде підтримуватися до 2023 року. Він поставляється з оновленим програмним забезпеченням і містить доопрацювання і безліч нових [...]

  • Вийшов дистрибутив Linux Mint 19.2

    представлений реліз дистрибутива Linux Mint 19.2, другого поновлення гілки Linux Mint 19.x, що формується на пакетної базі Ubuntu 18.04 LTS і підтримуваної до 2023 року. Дистрибутив повністю сумісний [...]

  • Доступні нові сервісні релізи BIND, які містять виправлення помилок і покращення функцій. Нові випуски можуть бути завантажений зі сторінки завантажень на сайті розробника: [...]

    Exim - агент передачі повідомлень (MTA), розроблений в Кембріджському університеті для використання в системах Unix, підключених до Інтернету. Він знаходиться у вільному доступі відповідно до [...]

    Після майже двох років розробки представлений реліз ZFS on Linux 0.8.0, реалізації файлової системи ZFS, оформленої у вигляді модуля для ядра Linux. Робота модуля перевірена з ядрами Linux c 2.6.32 по [...]

    Комітет IETF (Internet Engineering Task Force), що займається розвитком протоколів і архітектури Інтернету, завершив формування RFC для протоколу ACME (Automatic Certificate Management Environment) [...]

    Некомерційний засвідчує центр Let's Encrypt, контрольований співтовариством і надає сертифікати безоплатно всім бажаючим, підбив підсумки минулого року і розповів про плани на 2019 рік. [...]

    PostgreSQL - це кроссплатформенная об'єктно-реляційна СУБД з відкритим вихідним кодом. З цієї статті ви дізнаєтеся, як встановити PostgreSQL в Ubuntu Linux, підключитися до нього і виконати пару простих SQL-запитів, А також про те, як налаштувати резервне копіювання.

    Щоб встановити PostgreSQL 9.2 в Ubuntu 12.10, виконайте наступні команди:

    sudo apt-add-repository ppa: pitti / postgresql
    sudo apt-get update
    sudo apt-get install postgresql-9.2

    Спробуємо попрацювати з СУБД через оболонку:

    sudo -u postgres psql

    Створимо тестову базу даних і тестового користувача:

    CREATE DATABASE test_database;
    CREATE USER test_user WITH password "qwerty";
    GRANT ALL ON DATABASE test_database TO test_user;

    Для виходу з оболонки введіть команду \\ q.

    Тепер спробуємо попрацювати з створеної базою даних від імені test_user:

    psql -h localhost test_database test_user

    Створимо нову таблицю:

    CREATE SEQUENCE user_ids;
    CREATE TABLE users (
    id INTEGER PRIMARY KEY DEFAULT NEXTVAL ( "user_ids"),
    login CHAR (64),
    password CHAR (64));

    Зверніть увагу, що на відміну від деяких інших СУБД, в PostgreSQL немає стовпців з властивістю auto_increment. Замість цього в постгресе використовуються послідовності (sequences). На даний момент досить знати, що за допомогою функції nextval ми можемо отримувати унікальні числа для заданої послідовності:

    SELECT NEXTVAL ( "user_ids");

    Прописавши в якості значення за замовчуванням для поля id таблиці users значення NEXTVAL ( "user_ids") , Ми домоглися того ж ефекту, що дає auto_increment. При додаванні нових записів в таблицю ми можемо не вказувати id, тому що унікальний id буде створений автоматично. Кілька таблиць можуть використовувати одну і ту ж послідовність. Таким чином ми зможемо гарантувати, що значення деяких полів у цих таблиць не перетинаються. У цьому сенсі послідовності гнучкіші, ніж auto_increment.

    Точно таку ж таблицю можна створити і за допомогою всього лише однієї команди:

    CREATE TABLE users2 (
    id SERIAL PRIMARY KEY,
    login CHAR (64),
    password CHAR (64));

    У цьому випадку послідовність для поля id створюється автоматично.

    Тепер за допомогою команди \\ d можна ознайомитися зі списком всіх доступних таблиць, а за допомогою \\ d users - побачити опис таблиці users. Якщо ви не отримали цікаву для вас інформацію, спробуйте \\ d + замість \\ d. Список баз даних можна отримати командою \\ l, а переключитися на конкретну БД - командою \\ c dbname. Для відображення довідки по командам скажіть \\? .

    Важливо відзначити, що в PostgreSQL за замовчуванням імена таблиць і стовпців приводяться до нижнього регістру. Якщо це поведінка небажано, можна скористатися подвійними лапками:

    CREATE TABLE "anotherTable" ( "someValue" VARCHAR (64));

    Ще одна особливість PostgreSQL, з якої можуть виникнути складності на початку роботи з цієї СУБД - так звані «схеми». Схема являє собою щось на зразок простору імен для таблиць, як би каталог з таблицями всередині бази даних.

    Створення схеми:

    CREATE SCHEMA bookings;

    Перемикання на схему:

    SET search_path TO bookings;

    Переглянути список існуючих схем можна командою \\ dn. За замовчуванням використовується схема з ім'ям public. В принципі, можна успішно використовувати PostgreSQL, і не знаючи про існування схем. Але при роботі з успадкованим кодом, а також в деяких граничних випадках, знання про схеми може дуже стати в нагоді.

    В іншому робота з PostgreSQL мало чим відрізняється від роботи з будь-якою іншою реляційної СУБД:

    INSERT INTO users (login, password)
    VALUES ( "afiskon", "123456");
    SELECT * FROM users;

    Якщо зараз ви спробуєте підключитися до постгресу з іншої машини, то зазнаєте невдачі:

    psql -h 192.168.0.1 test_database test_user

    Psql: could not connect to server: Connection refused
    Is the server running on host "192.168.0.1" and accepting
    TCP / IP connections on port 5432?

    Щоб виправити це, додайте рядок:

    listen_addresses \u003d "localhost, 192.168.0.1"

    ... в файл /etc/postgresql/9.2/main/postgresql.conf, а також.

    Увага : Якщо Ви працюєте в ОС Windows і ще не встановлювали PostgreSQL і «Дебет Плюс V12», тоді можете завантажити зі сторінки закачування збірку «Дебет Плюс V12» з попередньо встановленою СУБД PostgreSQL і підключеної базою даних (з базовою конфігурацією для України). В іншому випадку Вам потрібно попередньо встановити СУБД PostgreSQL і програмний комплекс «Дебет Плюс V12», після чого можна буде налаштувати з'єднання і імпортувати базу даних PostgreSQL, керуючись даною інструкцією.

    Для підключення бази даних PostgreSQL необхідно виконати наступні дії:

      Запустіть «Дебет Плюс V12» і додайте нову базу (контекстне меню «Додати нову»).

      Залиште позначку в полі "Додати в список існуючу".

    «СУБД» - POSTGRE.

    «Сервер бази даних» - localhost.

    «Ім'я бази даних» - вкажіть ім'я бази даних з СУБД PostgreSQL латинськими буквами в нижньому регістрі (маленькими буквами).

    Примітка: Зазвичай використовується одна база. Для спеціальних цілей, базу можна розбити на кілька, тоді потрібно поставити галочку навпроти «Використовувати кілька баз даних», натиснути кнопку «Далі» і вказати відповідність «міток» фізичним баз. Це може бути потрібно, наприклад, в тому випадку, якщо бази даних декількох підприємств будуть посилатися на одні і ті ж довідники (контрагентів, номенклатури і т.п.). Цей випадок далі не обговорюється.

    «Каталог налаштувань» - вкажіть шлях до налаштувань бази для PostgreSQL (диск \\ DebetPlusV12 \\ base \\ pgdpbase).

    Збережіть внесені зміни шляхом натискання кнопки «Готово».

      Запустіть pgAdmin (адміністратор СУБД PostgreSQL), додайте сервер (File / Add Server ...) і додайте нову базу (меню «New Database ...»).

    Введіть ім'я сервера, localhost в поле Host, інші поля заповнюйте за бажанням.

    Введіть назву бази даних в поле «Name» (таке ж, як ввели в поле «Сервер» в настройках з'єднання з базою даних «Дебет Плюс V12»).

      Для імпорту бази даних з архіву скористайтеся меню «Restore ...»

    Вкажіть шлях до архіву бази dpbase.bakup (диск \\ DebetPlusV12 \\ base \\ pgdpbase).

      Можна додати користувача dpadmin, який є адміністратором в «Дебет Плюс V12» за замовчуванням (без пароля).

    Дайте всі права даному користувачеві.

    Примітка : Можна користувача dpadmin не додавати, тоді при активації бази потрібно буде вводити ім'я адміністратора postgres.

    Оновлення список баз (меню «Refresh»).

    Примітка : Якщо Ви не хочете привласнювати користувачеві права «Superuser», тоді надайте права на «Tables» і «Views». Для цього, виділивши відповідний об'єкт, виберіть пункт контекстного меню «Grant Wizard».

    На вкладці «Selection» натисніть кнопку «Check all», а на вкладці «Privileges» поставте позначку «ALL» і натисніть кнопку «Add / Change». Збережіть зміни.

      Активуйте налаштування з'єднання з базою даних в ПЗ «Дебет Плюс V12» (контекстне меню «Зробити активної»).

    Система запросить пароль для підключення до БД. Натисніть «Так».

    Увага! Якщо таке повідомлення не з'явилося, тоді запустіть оновлення структур бази даних, вибравши пункт меню «Сервіс» / «Оновлення структур БД».

    В результаті з'явиться таке вікно:

    Залиште всі поля за замовчуванням (обов'язково повинні бути відмітки в графі «Переіндексувати» для всіх таблиць БД).

    Після закінчення модифікації можете приступати до роботи.

      Запустіть «Дебет Плюс V12» і додайте нову базу (контекстне меню «Додати нову»).

      Залиште позначку в полі «Додати в список існуючу»:

    У першому полі вкажіть довільну назву бази (на кожному робочому комп'ютері назва може бути різним).

    «СУБД» - POSTGRE.

    «Сервер бази даних» - ім'я або IP-адресу сервера.

    «Порт сервера бази даних» - вкажіть порт сервера бази даних, за замовчуванням 5432.

    «Ім'я бази даних» - вкажіть ім'я бази даних латинськими буквами в нижньому регістрі.

    «Ім'я схеми бази даних» - dpbase.

    Поставте галочку тільки в поле «Використовувати авторизацію Дебет Плюс».

    «Каталог налаштувань» - вкажіть шлях до налаштувань бази для PostgreSQL (мережевий шлях \\ DebetPlusV12 \\ base \\ pgdpbase).

    Збережіть внесені зміни шляхом натискання кнопки «Готово», після чого зробіть базу активною.

      Встановіть параметри запуску (головне меню «Налаштування» / «Параметри запуску»)

    У вікні в полі «Пароль для зміни налаштувань» введіть пароль 150301 і натисніть на кнопку «Прийняти».

    Вкажіть шлях до папки JDebet на сервері і натисніть зберегти. Зробіть базу активної і можете приступати до роботи.

    System Administration

    Цей пост - коротка інструкція для початківців, для тих хто вперше встановив PostgreSQL. тут вся необхідна інформація для того, щоб почати роботу з PostgreSQL.

    Підключення до СУБД

    Перше, що потрібно зробити - отримати доступ до PostgreSQL, доступ в якості суперкористувача.
    Налаштування аутентифікації знаходяться в файлі pg_hba.conf.
    1. local all postgres peer
    Цей рядок говорить про те, що користувач postgres може підключатися до будь-якої базі даних локальної СУБД PostgreSQL через сокет. Пароль при цьому вводити не треба, операційна система передасть ім'я користувача, і воно буде використано для аутентифікації.
    підключаємося:
    1. $ Sudo -u postgres psql postgres postgres
    Щоб мати можливість підключатися по мережі, треба в pg_hdba.conf додати рядок:
    1. # TYPE DATABASE USER ADDRESS METHOD
    2. hostssl all all 0.0.0.0/0 md5
    метод аутентифікації md5 означає, що для підключення доведеться ввести пароль. Це не дуже зручно, якщо ви часто користуєтеся консоллю psql. Якщо ви хочете автоматизувати якісь дії, то погана новина в тому, що psql не приймає пароль в якості аргументу. Є два шляхи вирішення цих проблем: установка відповідної змінної оточення і зберігання пароля в спеціальному файле.pgpass.

    Установка змінної оточення PGPASSWORD

    Відразу скажу, що краще цей спосіб не використовувати, тому що деякі операційні системи дозволяють переглядати звичайним користувачам змінні оточення за допомогою ps. Але якщо хочеться, то треба написати в терміналі:
    1. export PGPASSWORD \u003d mypasswd
    Мінлива буде доступна в поточній сесії. Якщо потрібно задати змінну для всіх сесій, то треба додати рядок з прикладу в файл.bashrc ілі.bash_profile

    Зберігання пароля в файле.pgpass

    Якщо ми говоримо про Linux, то файл повинен знаходиться в $ HOME (/ home / username). Права на запис і читання повинні бути тільки у власника (0600). У файл потрібно записувати такі рядки:
    1. hostname: port: database: username: password
    У перші чотири поля можна записати "*", що означатиме відсутність фільтрації (повну вибірку).

    Отримання довідкової інформації

    \\? - видасть всі доступні команди разом з їх коротким описом,
    \\ H - видасть список всіх доступних запитів,
    \\ H CREATE - видасть довідку за конкретним запитом.

    Управління користувачами СУБД

    Як отримати список користувачів PostgreSQL? Або можна зробити запит до таблиці pg_user.
    1. SELECT * FROM pg_user;

    Створення нового користувача PostgreSQL

    З командної оболонки psql це можна зробити за допомогою команди CREATE.
    1. CREATE USER username WITH password "password";
    Або можна скористатися терміналом.
    1. createuser -S -D -R -P username
    Введення пароля буде запитано.

    Зміна пароля користувача

    1. ALTER USER username WITH PASSWORD "password";

    Зміна ролей користувача

    Щоб користувач мав право створювати бази даних, виконайте запит:
    1. ALTER ROLE username WITH CREATEDB;

    Управління базами даних

    Виведення списку баз даних в терміналі psql: Теж саме з терміналу Linux:
    1. psql -l
    Створення бази даних з psql (PostgreSQL Terminal)
    1. CREATE DATABASE dbname OWNER dbadmin;
    Створення нової бази даних за допомогою терміналу:
    1. createdb -O username dbname;

    Налаштування прав доступу до бази даних

    Якщо користувач є власником (owner) бази даних, то у нього є всі права. Але якщо ви хочете дати доступ іншому користувачеві, то зробити це можна за допомогою команди GRANT. Запит нижче дозволить користувачеві підключатися до бази даних. Але не забувайте про файлі конфігурації pg_hba.conf, в ньому теж повинні бути відповідні дозволи на підключення.
    1. GRANT CONNECT ON DATABASE dbname TO dbadmin;


    Сподобалася стаття? поділіться їй