Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Базы данных
  4. PostgreSQL
  5. Создание пользователя и базы данных, настройка доступов, установка пароля

Создание пользователя и базы данных, настройка доступов, установка пароля

Запланировано Прикреплена Закрыта Перенесена PostgreSQL
2 Сообщения 2 Постеры 85 Просмотры 1 Отслеживают
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • JspiJ Не в сети
    JspiJ Не в сети
    Jspi
    js
    написал в отредактировано Jspi
    #1

    Установка PostgreSQL в различных дистрибутивах Linux

    Ubuntu/Debian

    PostgreSQL доступен во всех версиях Ubuntu и Debian по умолчанию. Для установки используйте следующие команды:

    Установка из стандартных репозиториев:

    sudo apt update
    sudo apt install postgresql
    

    Для установки конкретной версии PostgreSQL используйте официальный репозиторий:

    Добавьте официальный репозиторий PostgreSQL:

    sudo apt install -y postgresql-common
    sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
    

    Установите нужную версию:

    # Для PostgreSQL 17
    sudo apt install postgresql-17
    
    # Для PostgreSQL 16
    sudo apt install postgresql-16
    CentOS/RHEL
    Для систем на базе Red Hat используйте следующий подход:
    

    CentOS 9/RHEL 9:

    # Добавьте официальный репозиторий PostgreSQL
    sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    
    # Отключите встроенный модуль PostgreSQL
    sudo dnf -qy module disable postgresql
    
    # Установите PostgreSQL 17
    sudo dnf install -y postgresql17-server
    
    # Инициализируйте базу данных
    sudo /usr/pgsql-17/bin/postgresql-17-setup initdb
    
    # Запустите и включите службу
    sudo systemctl enable postgresql-17
    sudo systemctl start postgresql-17
    

    Базовая настройка PostgreSQL

    После установки проверьте, что PostgreSQL запущен:

    # Для systemd (большинство современных дистрибутивов)
    sudo systemctl status postgresql
    
    # Или для конкретной версии
    sudo systemctl status postgresql-17
    

    После установки автоматически создается системный пользователь postgres. Этот пользователь является суперпользователем PostgreSQL:

    # Переключитесь на пользователя postgres
    sudo -i -u postgres
    
    # Запустите интерактивную оболочку PostgreSQL
    psql
    

    По умолчанию пользователь postgres не имеет пароля. Установите пароль для безопасности (если необходимо):

    # В оболочке PostgreSQL
    \password postgres
    

    Или используйте SQL-команду:

    ALTER USER postgres WITH PASSWORD 'your_secure_password';
    

    Создание базы данных и пользователя

    Создание новой базы данных
    Метод 1: Через psql

    # Подключитесь к PostgreSQL
    sudo -u postgres psql
    
    # Создайте базу данных
    CREATE DATABASE myproject;
    
    # Выйдите из psql
    \q
    

    Метод 2: Через утилиту createdb

    # От имени пользователя postgres
    sudo -u postgres createdb myproject
    
    # Или с указанием кодировки
    sudo -u postgres createdb --encoding=UTF8 --locale=en_US.UTF8 myproject
    

    Создание пользователя с паролем
    Создание пользователя через psql:

    -- Создать пользователя с паролем
    CREATE USER myuser WITH PASSWORD 'secure_password123';
    
    -- Предоставить все права на базу данных
    GRANT ALL PRIVILEGES ON DATABASE myproject TO myuser;
    
    -- Дать права на создание баз данных (опционально)
    ALTER USER myuser CREATEDB;
    
    -- Сделать пользователя суперпользователем (не рекомендуется для продакшена)
    ALTER USER myuser WITH SUPERUSER;
    

    Создание пользователя через утилиту createuser:

    # Создать пользователя с запросом пароля
    sudo -u postgres createuser -P myuser
    
    # Создать пользователь с правами на создание БД
    sudo -u postgres createuser -P -d myuser
    
    # Создать суперпользователя
    sudo -u postgres createuser -P -s myuser
    

    Вот полный пример создания базы данных и пользователя с правильными правами доступа:

    -- Подключиться к PostgreSQL
    sudo -u postgres psql
    
    -- Создать пользователя
    CREATE USER app_user WITH PASSWORD 'StrongPassword123!';
    
    -- Создать базу данных
    CREATE DATABASE app_database OWNER app_user;
    
    -- Предоставить все права на базу данных
    GRANT ALL PRIVILEGES ON DATABASE app_database TO app_user;
    
    -- Подключиться к созданной базе данных
    \c app_database
    
    -- Предоставить права на схему public
    GRANT ALL ON SCHEMA public TO app_user;
    
    -- Предоставить права на все таблицы в схеме public
    GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO app_user;
    
    -- Установить права по умолчанию для новых таблиц
    ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO app_user;
    

    Управление службой PostgreSQL

    Основные команды systemctl

    # Запуск службы
    sudo systemctl start postgresql
    
    # Остановка службы
    sudo systemctl stop postgresql
    
    # Перезапуск службы
    sudo systemctl restart postgresql
    
    # Проверка статуса
    sudo systemctl status postgresql
    
    # Включение автозапуска при загрузке системы
    sudo systemctl enable postgresql
    
    # Отключение автозапуска
    sudo systemctl disable postgresql
    

    Альтернативные методы управления
    Использование pg_ctl (для конкретного кластера):

    # Запуск
    sudo -u postgres pg_ctl -D /var/lib/postgresql/data start
    
    # Остановка
    sudo -u postgres pg_ctl -D /var/lib/postgresql/data stop
    

    Для Ubuntu/Debian с pg_ctlcluster:

    # Просмотр кластеров
    pg_lsclusters
    
    # Запуск кластера
    sudo pg_ctlcluster 17 main start
    
    # Остановка кластера
    sudo pg_ctlcluster 17 main stop
    Полезные команды для администрирования
    Подключение к базе данных
    ```bash
    # Подключение к конкретной базе данных под пользователем
    psql -d myproject -U myuser -h localhost
    
    # Подключение с запросом пароля
    psql -d myproject -U myuser -h localhost -W
    

    Основные SQL команды

    -- Просмотр списка баз данных
    \l
    
    -- Просмотр списка пользователей
    \du
    
    -- Подключение к другой базе данных
    \c database_name
    
    -- Просмотр таблиц в текущей базе данных
    \dt
    
    -- Выход из psql
    \q
    

    Проверка версии PostgreSQL

    # Проверка версии клиента
    psql --version
    
    # Проверка версии сервера (внутри psql)
    SELECT version();
    

    Это руководство охватывает основные аспекты развертывания PostgreSQL в различных дистрибутивах Linux, включая установку, создание баз данных и пользователей, а также базовую настройку безопасности и удаленного доступа. PostgreSQL поддерживается во всех основных дистрибутивах Linux и обеспечивает надежную работу с версиями от 13 до 17.

    kirilljsxK 1 ответ Последний ответ
    0
    • JspiJ Jspi

      Установка PostgreSQL в различных дистрибутивах Linux

      Ubuntu/Debian

      PostgreSQL доступен во всех версиях Ubuntu и Debian по умолчанию. Для установки используйте следующие команды:

      Установка из стандартных репозиториев:

      sudo apt update
      sudo apt install postgresql
      

      Для установки конкретной версии PostgreSQL используйте официальный репозиторий:

      Добавьте официальный репозиторий PostgreSQL:

      sudo apt install -y postgresql-common
      sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
      

      Установите нужную версию:

      # Для PostgreSQL 17
      sudo apt install postgresql-17
      
      # Для PostgreSQL 16
      sudo apt install postgresql-16
      CentOS/RHEL
      Для систем на базе Red Hat используйте следующий подход:
      

      CentOS 9/RHEL 9:

      # Добавьте официальный репозиторий PostgreSQL
      sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
      
      # Отключите встроенный модуль PostgreSQL
      sudo dnf -qy module disable postgresql
      
      # Установите PostgreSQL 17
      sudo dnf install -y postgresql17-server
      
      # Инициализируйте базу данных
      sudo /usr/pgsql-17/bin/postgresql-17-setup initdb
      
      # Запустите и включите службу
      sudo systemctl enable postgresql-17
      sudo systemctl start postgresql-17
      

      Базовая настройка PostgreSQL

      После установки проверьте, что PostgreSQL запущен:

      # Для systemd (большинство современных дистрибутивов)
      sudo systemctl status postgresql
      
      # Или для конкретной версии
      sudo systemctl status postgresql-17
      

      После установки автоматически создается системный пользователь postgres. Этот пользователь является суперпользователем PostgreSQL:

      # Переключитесь на пользователя postgres
      sudo -i -u postgres
      
      # Запустите интерактивную оболочку PostgreSQL
      psql
      

      По умолчанию пользователь postgres не имеет пароля. Установите пароль для безопасности (если необходимо):

      # В оболочке PostgreSQL
      \password postgres
      

      Или используйте SQL-команду:

      ALTER USER postgres WITH PASSWORD 'your_secure_password';
      

      Создание базы данных и пользователя

      Создание новой базы данных
      Метод 1: Через psql

      # Подключитесь к PostgreSQL
      sudo -u postgres psql
      
      # Создайте базу данных
      CREATE DATABASE myproject;
      
      # Выйдите из psql
      \q
      

      Метод 2: Через утилиту createdb

      # От имени пользователя postgres
      sudo -u postgres createdb myproject
      
      # Или с указанием кодировки
      sudo -u postgres createdb --encoding=UTF8 --locale=en_US.UTF8 myproject
      

      Создание пользователя с паролем
      Создание пользователя через psql:

      -- Создать пользователя с паролем
      CREATE USER myuser WITH PASSWORD 'secure_password123';
      
      -- Предоставить все права на базу данных
      GRANT ALL PRIVILEGES ON DATABASE myproject TO myuser;
      
      -- Дать права на создание баз данных (опционально)
      ALTER USER myuser CREATEDB;
      
      -- Сделать пользователя суперпользователем (не рекомендуется для продакшена)
      ALTER USER myuser WITH SUPERUSER;
      

      Создание пользователя через утилиту createuser:

      # Создать пользователя с запросом пароля
      sudo -u postgres createuser -P myuser
      
      # Создать пользователь с правами на создание БД
      sudo -u postgres createuser -P -d myuser
      
      # Создать суперпользователя
      sudo -u postgres createuser -P -s myuser
      

      Вот полный пример создания базы данных и пользователя с правильными правами доступа:

      -- Подключиться к PostgreSQL
      sudo -u postgres psql
      
      -- Создать пользователя
      CREATE USER app_user WITH PASSWORD 'StrongPassword123!';
      
      -- Создать базу данных
      CREATE DATABASE app_database OWNER app_user;
      
      -- Предоставить все права на базу данных
      GRANT ALL PRIVILEGES ON DATABASE app_database TO app_user;
      
      -- Подключиться к созданной базе данных
      \c app_database
      
      -- Предоставить права на схему public
      GRANT ALL ON SCHEMA public TO app_user;
      
      -- Предоставить права на все таблицы в схеме public
      GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO app_user;
      
      -- Установить права по умолчанию для новых таблиц
      ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO app_user;
      

      Управление службой PostgreSQL

      Основные команды systemctl

      # Запуск службы
      sudo systemctl start postgresql
      
      # Остановка службы
      sudo systemctl stop postgresql
      
      # Перезапуск службы
      sudo systemctl restart postgresql
      
      # Проверка статуса
      sudo systemctl status postgresql
      
      # Включение автозапуска при загрузке системы
      sudo systemctl enable postgresql
      
      # Отключение автозапуска
      sudo systemctl disable postgresql
      

      Альтернативные методы управления
      Использование pg_ctl (для конкретного кластера):

      # Запуск
      sudo -u postgres pg_ctl -D /var/lib/postgresql/data start
      
      # Остановка
      sudo -u postgres pg_ctl -D /var/lib/postgresql/data stop
      

      Для Ubuntu/Debian с pg_ctlcluster:

      # Просмотр кластеров
      pg_lsclusters
      
      # Запуск кластера
      sudo pg_ctlcluster 17 main start
      
      # Остановка кластера
      sudo pg_ctlcluster 17 main stop
      Полезные команды для администрирования
      Подключение к базе данных
      ```bash
      # Подключение к конкретной базе данных под пользователем
      psql -d myproject -U myuser -h localhost
      
      # Подключение с запросом пароля
      psql -d myproject -U myuser -h localhost -W
      

      Основные SQL команды

      -- Просмотр списка баз данных
      \l
      
      -- Просмотр списка пользователей
      \du
      
      -- Подключение к другой базе данных
      \c database_name
      
      -- Просмотр таблиц в текущей базе данных
      \dt
      
      -- Выход из psql
      \q
      

      Проверка версии PostgreSQL

      # Проверка версии клиента
      psql --version
      
      # Проверка версии сервера (внутри psql)
      SELECT version();
      

      Это руководство охватывает основные аспекты развертывания PostgreSQL в различных дистрибутивах Linux, включая установку, создание баз данных и пользователей, а также базовую настройку безопасности и удаленного доступа. PostgreSQL поддерживается во всех основных дистрибутивах Linux и обеспечивает надежную работу с версиями от 13 до 17.

      kirilljsxK Не в сети
      kirilljsxK Не в сети
      kirilljsx
      js
      написал в отредактировано
      #2

      @Jspi а как связать две таблицы? К примеру таблицу городов к пользователю ?

      1 ответ Последний ответ
      0

      Категории

      • Главная
      • Новости
      • Фронтенд
      • Бекенд
      • Языки программирования

      Контакты

      • Сотрудничество
      • info@exlends.com
      • Наш чат
      • Наш ТГ канал

      © 2024 - 2025 ExLends, Inc. Все права защищены.

      Политика конфиденциальности
      • Войти

      • Нет учётной записи? Зарегистрироваться

      • Войдите или зарегистрируйтесь для поиска.
      • Первое сообщение
        Последнее сообщение
      0
      • Лента
      • Категории
      • Последние
      • Метки
      • Популярные
      • Пользователи
      • Группы