Создание пользователя и базы данных, настройка доступов, установка пароля
-
Установка 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.
-
Установка 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.
@Jspi а как связать две таблицы? К примеру таблицу городов к пользователю ?
© 2024 - 2025 ExLends, Inc. Все права защищены.