<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Создание пользователя и базы данных, настройка доступов, установка пароля]]></title><description><![CDATA[<h2>Установка PostgreSQL в различных дистрибутивах Linux</h2>
<h3>Ubuntu/Debian</h3>
<p dir="auto">PostgreSQL доступен во всех версиях Ubuntu и Debian по умолчанию. Для установки используйте следующие команды:</p>
<p dir="auto">Установка из стандартных репозиториев:</p>
<pre><code class="language-bash">sudo apt update
sudo apt install postgresql
</code></pre>
<p dir="auto">Для установки конкретной версии PostgreSQL используйте официальный репозиторий:</p>
<p dir="auto">Добавьте официальный репозиторий PostgreSQL:</p>
<pre><code class="language-bash">sudo apt install -y postgresql-common
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
</code></pre>
<p dir="auto">Установите нужную версию:</p>
<pre><code class="language-bash"># Для PostgreSQL 17
sudo apt install postgresql-17

# Для PostgreSQL 16
sudo apt install postgresql-16
CentOS/RHEL
Для систем на базе Red Hat используйте следующий подход:
</code></pre>
<h3>CentOS 9/RHEL 9:</h3>
<pre><code class="language-bash"># Добавьте официальный репозиторий 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
</code></pre>
<h2>Базовая настройка PostgreSQL</h2>
<p dir="auto">После установки проверьте, что PostgreSQL запущен:</p>
<pre><code class="language-bash"># Для systemd (большинство современных дистрибутивов)
sudo systemctl status postgresql

# Или для конкретной версии
sudo systemctl status postgresql-17
</code></pre>
<p dir="auto">После установки автоматически создается системный пользователь postgres. Этот пользователь является суперпользователем PostgreSQL:</p>
<pre><code class="language-bash"># Переключитесь на пользователя postgres
sudo -i -u postgres

# Запустите интерактивную оболочку PostgreSQL
psql
</code></pre>
<p dir="auto">По умолчанию пользователь postgres не имеет пароля. Установите пароль для безопасности (если необходимо):</p>
<pre><code class="language-bash"># В оболочке PostgreSQL
\password postgres
</code></pre>
<p dir="auto">Или используйте SQL-команду:</p>
<pre><code class="language-sql">ALTER USER postgres WITH PASSWORD 'your_secure_password';
</code></pre>
<h3>Создание базы данных и пользователя</h3>
<p dir="auto">Создание новой базы данных<br />
Метод 1: Через psql</p>
<pre><code class="language-bash"># Подключитесь к PostgreSQL
sudo -u postgres psql

# Создайте базу данных
CREATE DATABASE myproject;

# Выйдите из psql
\q
</code></pre>
<p dir="auto">Метод 2: Через утилиту createdb</p>
<pre><code class="language-bash"># От имени пользователя postgres
sudo -u postgres createdb myproject

# Или с указанием кодировки
sudo -u postgres createdb --encoding=UTF8 --locale=en_US.UTF8 myproject
</code></pre>
<p dir="auto">Создание пользователя с паролем<br />
Создание пользователя через psql:</p>
<pre><code class="language-sql">-- Создать пользователя с паролем
CREATE USER myuser WITH PASSWORD 'secure_password123';

-- Предоставить все права на базу данных
GRANT ALL PRIVILEGES ON DATABASE myproject TO myuser;

-- Дать права на создание баз данных (опционально)
ALTER USER myuser CREATEDB;

-- Сделать пользователя суперпользователем (не рекомендуется для продакшена)
ALTER USER myuser WITH SUPERUSER;
</code></pre>
<p dir="auto">Создание пользователя через утилиту createuser:</p>
<pre><code class="language-bash"># Создать пользователя с запросом пароля
sudo -u postgres createuser -P myuser

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

# Создать суперпользователя
sudo -u postgres createuser -P -s myuser
</code></pre>
<p dir="auto">Вот полный пример создания базы данных и пользователя с правильными правами доступа:</p>
<pre><code class="language-sql">-- Подключиться к 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;
</code></pre>
<h3>Управление службой PostgreSQL</h3>
<p dir="auto">Основные команды systemctl</p>
<pre><code class="language-bash"># Запуск службы
sudo systemctl start postgresql

# Остановка службы
sudo systemctl stop postgresql

# Перезапуск службы
sudo systemctl restart postgresql

# Проверка статуса
sudo systemctl status postgresql

# Включение автозапуска при загрузке системы
sudo systemctl enable postgresql

# Отключение автозапуска
sudo systemctl disable postgresql
</code></pre>
<p dir="auto">Альтернативные методы управления<br />
Использование pg_ctl (для конкретного кластера):</p>
<pre><code class="language-bash"># Запуск
sudo -u postgres pg_ctl -D /var/lib/postgresql/data start

# Остановка
sudo -u postgres pg_ctl -D /var/lib/postgresql/data stop
</code></pre>
<p dir="auto">Для Ubuntu/Debian с pg_ctlcluster:</p>
<pre><code class="language-bash"># Просмотр кластеров
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
</code></pre>
<p dir="auto">Основные SQL команды</p>
<pre><code class="language-sql">-- Просмотр списка баз данных
\l

-- Просмотр списка пользователей
\du

-- Подключение к другой базе данных
\c database_name

-- Просмотр таблиц в текущей базе данных
\dt

-- Выход из psql
\q
</code></pre>
<p dir="auto">Проверка версии PostgreSQL</p>
<pre><code class="language-bash"># Проверка версии клиента
psql --version

# Проверка версии сервера (внутри psql)
SELECT version();
</code></pre>
<p dir="auto">Это руководство охватывает основные аспекты развертывания PostgreSQL в различных дистрибутивах Linux, включая установку, создание баз данных и пользователей, а также базовую настройку безопасности и удаленного доступа. PostgreSQL поддерживается во всех основных дистрибутивах Linux и обеспечивает надежную работу с версиями от 13 до 17.</p>
]]></description><link>https://forum.exlends.ru/topic/22/sozdanie-polzovatelya-i-bazy-dannyh-nastrojka-dostupov-ustanovka-parolya</link><generator>RSS for Node</generator><lastBuildDate>Wed, 20 May 2026 08:18:28 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/22.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Oct 2024 14:40:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Создание пользователя и базы данных, настройка доступов, установка пароля on Thu, 10 Oct 2024 19:09:22 GMT]]></title><description><![CDATA[<p dir="auto">@Jspi а как связать две таблицы? К примеру таблицу городов к пользователю ?</p>
]]></description><link>https://forum.exlends.ru/post/51</link><guid isPermaLink="true">https://forum.exlends.ru/post/51</guid><dc:creator><![CDATA[kirilljsx]]></dc:creator><pubDate>Thu, 10 Oct 2024 19:09:22 GMT</pubDate></item></channel></rss>