yandex
Калькулятор ценТарифыАкцииДокументацияО насКарьера в Cloud.ruНовостиЮридические документыКонтактыРешенияРеферальная программаКейсыПартнерство с Cloud.ruБезопасностьEvolutionAdvancedEvolution StackОблако VMwareВ чем отличия платформ?БлогОбучение и сертификацияМероприятияИсследования Cloud.ruЛичный кабинетВойтиЗарегистрироватьсяОблако для мобильных и веб‑приложенийСайт в облакеАналитика данных в облакеХранение данных в облакеАналитика данных в облакеИнфраструктура для 1С в облакеМиграция IT‑инфраструктуры в облако3D-моделирование и рендерингРазработка и тестирование в облакеEvolution ComputeEvolution Managed KubernetesEvolution Object StorageEvolution Managed PostgreSQL®Evolution Bare MetalEvolution SSH KeysEvolution ImageEvolution DNSEvolution VPCEvolution Load BalancerEvolution Magic RouterEvolution DiskEvolution Container AppsEvolution Artifact RegistryEvolution Managed ArenadataDBEvolution Managed TrinoEvolution Managed SparkEvolution ML InferenceEvolution Distributed TrainEvolution ML FinetuningEvolution NotebooksEvolution TagsEvolution Task HistoryCurator Anti-DDoSCurator Anti‑DDoS+WAFUserGate: виртуальный NGFWStormWall: Anti-DDoSCloud MonitoringCloud LoggingАренда GPUDirect ConnectCDNCloud AdvisorCross-platform connectionAdvanced Object Storage ServiceAdvanced Elastic Cloud ServerAdvanced Relational Database Service for PostgreSQLAdvanced Image Management ServiceAdvanced Auto ScalingAdvanced Enterprise RouterAdvanced Cloud Backup and RecoveryAdvanced Data Warehouse ServiceAdvanced Elastic Volume ServiceAdvanced Cloud Container EngineAdvanced FunctionGraphAdvanced Container Guard ServiceAdvanced Software Repository for ContainerAdvanced Document Database Service with MongoDBAdvanced Relational Database Service for MySQLAdvanced Relational Database Service for SQL ServerAdvanced Server Migration ServiceAdvanced Data Replication ServiceAdvanced API GatewayAdvanced CodeArtsAdvanced Distributed Message Service for KafkaAdvanced Distributed Message Service for RabbitMQAdvanced DataArts InsightAdvanced CloudTableAdvanced MapReduce ServiceAdvanced Cloud Trace ServiceAdvanced Application Performance ManagementAdvanced Identity and Access ManagementAdvanced Enterprise Project Management ServiceVMware: виртуальный ЦОД с GPUVMware: виртуальный ЦОДУдаленные рабочие столы (VDI)VMware: резервное копирование виртуальных машинVMware: резервный ЦОДVMware: резервное копирование в облакоVMware: миграция виртуальных машин
Связаться с нами

Как создать базу данных PostgreSQL: CREATE DATABASE

PostgreSQL часто выбирают за надежность, масштабируемость и соответствие стандартам SQL. Но какой бы мощной ни была СУБД, знакомство с ней всегда начинается с одного и того же — с создания базы данных (БД). 

В этой статье на конкретных примерах разберем, как создать базу через командную строку с помощью psql, какие параметры стоит задавать сразу, а также покажем альтернативный способ — через графический интерфейс pgAdmin. Материал актуален для PostgreSQL версий 14, 15, 16 и новее.

Инструкции
Иллюстрация для статьи на тему «Как создать базу данных PostgreSQL: CREATE DATABASE»
Продукты из этой статьи:
Иконка-Advanced Relational Database Service for PostgreSQL
Advanced Relational Database Service for PostgreSQL
Иконка-Evolution Managed PostgreSQL®
Evolution Managed PostgreSQL®
Иконка-Evolution Object Storage
Evolution Object Storage

Подготовка к созданию базы данных

На этапе подготовки нужно установить сервер PostgreSQL и настроить доступ к нему. Предлагаем алгоритмы для разных операционных систем. 

Организация данных в PostgreSQLОрганизация данных в PostgreSQL
Дарим до 20 000 бонусов
Дарим до 20 000 бонусов
4 000 бонусов — физическим лицам, 20 000 бонусов — юридическим

Установка PostgreSQL

Процесс установки зависит от операционной системы (ОС). Коротко делимся основными моментами. 

Linux (Debian/Ubuntu) 

Лучше действовать через пакетный менеджер apt. Сначала обновите систему с помощью команд: 

Установите вспомогательные пакеты: 

Добавьте официальный GPG-ключ:

Добавьте репозиторий:

Обновите список пакетов на устройстве: 

Установите сервер PostgreSQL:

Проверьте статус службы:

Подключитесь к серверу:

Проверьте установленную версию: 

По умолчанию служба после установки запускается автоматически. Сразу создаются кластер базы данных и системный пользователь postgres. 

Установка PostgreSQL на Windows

Установка выполняется через установщик от EnterpriseDB, который можно скачать на официальном сайте PostgreSQL. Что делать дальше:

  1. Запустите .exe файл и укажите каталог установки.

  2. Определите каталог хранения данных.

  3. Придумайте сложный пароль для пользователя postgres.

  4. Укажите порт — по умолчанию 5432.

  5. Выберите локаль и завершите установку. 

Откройте окно служб и убедитесь, что PostgreSQL создана и запущена:

Откройте PowerShell и выполните:

Установка PostgreSQL на macOS

Разберем рекомендуемый способ — через Homebrew. Сначала выполните обновление:

Установите PostgreSQL:

Запустите службу с помощью команды:

Проверьте установку и подключитесь к службе:

Настройка доступа

В PostgreSQL управление доступом выполняется через роли, систему привилегий и настройки конфигурационного файла аутентификации — pg_hba.conf. Сначала нужно задать роль с правом входа, а после создания базы данных назначить права на объекты и настроить правила подключения к БД. 

Войдите в систему от имени пользователя postgres. Команда для Linux:

Для Windows и macOS:

Создайте роль с правом подключения к базе данных:

Создайте базу данных и назначьте владельца:

Подключитесь к базе с помощью команды:

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

Если в базе есть таблицы, назначайте права с помощью команды типа:

Если хотите, чтобы назначенные права автоматически применялись к создаваемым таблицам, выполните:

Настройте в файле pg_hba.conf правила аутентификации. Сначала установите расположение файла:

Добавьте в файл подобную запись со своими настройками: 

Здесь указаны тип подключения, созданная база данных, пользователь, IP-адрес и метод аутентификации. В качестве последнего официальная документация СУБД рекомендует использовать scram-sha-256. 

После внесения изменений в файл примените настройки:

Для проверки назначенных прав доступа и других настроек выполните команду: 

Управляемый PostgreSQL
Управляемый PostgreSQL
Масштабируйте БД в 2 клика с SLA 99,7%
Подробнее

Основы команды CREATE DATABASE

Для создания новой базы данных PostgreSQL применяется команда CREATE DATABASE. Посмотрим ее синтаксис и ключевые параметры. 

Синтаксис команды

Базовый синтаксис команды выглядит так: 

Синтаксис с указанием параметров:

По умолчанию при создании базы данных сразу задается владелец, который и совершает действия. Это может быть суперпользователь либо пользователь с правом CREATEDB. 

Если хотите создать базу данных, но не уверены, что нет другой базы с таким же именем, выполните конструкцию с функцией проверки:

Основные параметры

В предыдущем разделе есть пример команд с опциями. Например, OWNER задает владельца базы данных, который получит полные права на управление. Команда с таким параметром:

Параметр TEMPLATE задает шаблон для создания базы. По умолчанию в PostgreSQL каждая новая БД создается путем копирования существующей. По умолчанию применяется параметр template1. Чтобы создать чистую базу данных и изменить кодировку, используется template0. Пример:

Кодировку базы данных и способ хранения текстовой информации задает параметр ENCODING. Почти всегда используются UTF8:

Локализацией управляют параметры LC_COLLATE и LC_CTYPE. LC_COLLATE отвечает за правила сортировки строк, LC_CTYPE — за классификацию символов:

Параметр TABLESPACE определяет пространство, где будут храниться файлы базы данных. По умолчанию применяется pg_default:

Параметр ALLOW_CONNECTIONS определяет возможность локального и удаленного доступа к базе данных. Пример, когда БД создается, но подключаться к ней нельзя:

Параметр CONNECTION LIMIT указывает на количество одновременных подключений к базе данных:

Пример команды с ключевыми параметрами: 

Создание базы данных через командную строку

Можно создавать базу данных PostgreSQL с помощью стандартных инструментов из командной строки. Приводим подробное описание процесса через консольную утилиту. 

Использование psql

Через утилиту psql можно выполнять стандартные SQL-команды, в том числе и для создания базы данных. Для этого откройте терминал операционной системы и подключитесь к серверу PostgreSQL:

Расшифровываем команду:

  • -U — имя пользователя базы данных;

  • -h — адрес сервера. В примере это localhost;

  • -p — порт подключения;

  • -d — имя БД для подключения. Обычно это postgres.

После подключения к серверу выполните стандартную команду для создания базы данных: 

Если хотите создать базу данных вне интерактивного режима, выполните:

Примеры создания баз данных с разными параметрами

Создание базы данных с одновременным назначением владельца: 

Создание с указанием кодировки: 

Создание БД с указанием шаблона: 

Создание с указанием локали:

Создание базы данных с ограничением на количество одновременных подключений: 

Создание базы данных через pgAdmin

Чтобы не использовать командную строку, можно создать базу данных через графический интерфейс pgAdmin. Вы получите доступ к серверу PostgreSQL, настройкам и управлению пользователями. 

Создание базы данныхСоздание базы данных

Установка и подключение

Скачайте установочный пакет с официального сайта pgAdmin. Запустите установку по инструкции. После откроется окно с интерфейсом pgAdmin. Дальше действуйте так: 

  1. На левой панели найдите раздел Servers, выберите в нем Register → Server.

  2. Откройте вкладку General, укажите произвольное имя подключения. 

  3. Во вкладке Connection укажите адрес сервера (Host name/address), владельца базы данных (Maintenance database), имя пользователя (Username) и пароль (Password).  

Затем нажмите Save. После этого сервер PostgreSQL появится в настройках интерфейса, и с ним можно будет работать. 

Пошаговое создание базы данных

Через интерфейс откройте подключенный сервер, перейдите в Databases, выберите Create → Database. Откроется окно создания новой базы данных. 

Во вкладке General введите имя базы данных и владельца, которого можно выбрать из существующих пользователей.

Во вкладке Definition укажите кодировку, шаблон базы данных, параметры локалей и лимиты на максимальное число подключений. В Security настройте права доступа для пользователей. 

Управление базами данных

Управление может включать изменения параметров и удаление базы данных. Разберем основные команды и нюансы их выполнения. 

Изменение параметров базы данных

Для изменения свойств существующей базы данных используется команда ALTER DATABASE. Выполнять ее может владелец базы данных или суперпользователь. Общий синтаксис команды выглядит так: 

 Если хотите изменить владельца базы данных, выполните такую команду:

Чтобы поменять имя базы данных: 

Чтобы изменить лимит одновременных подключений, выполните: 

Команда, которая позволит изменить конфигурацию для конкретной базы данных:

Изменение параметров через ALTER DATABASE ... SET ... вступает в силу только для новых подключений. Уже активные сессии не увидят новое значение параметра до переподключения.

Учитывайте, что локаль и кодировку после создания базы данных изменить не получится. Переименование БД возможно только тогда, когда нет активных подключений. 

Удаление базы данных

Для удаления применяется команда DROP DATABASE, которую может выполнять суперпользователь или владелец базы данных. Базовый синтаксис выглядит: 

Пример с именем базы данных: 

Чтобы избежать ошибки, применяя команду к несуществующей базе данных, добавьте опцию IF EXISTS:

Перед выполнением команды завершите активные подключения к базе данных, иначе удалить объект не получится. Также учитывайте, что DROP DATABASE безвозвратно удаляет не только БД, но и каталог и все данные. Чтобы избежать потери важной информации, перед выполнением команды сделайте резервную копию базы. 

Советы и рекомендации

К управлению базами данных PostgreSQL нужно подходить комплексно. Обязательные меры, которые нужно предпринять для безопасности и организации рутинных процессов: 

  • Регулярное резервное копирование — для копирования отдельных баз данных можно использовать утилиту pg_dump, для всех в кластере — pg_dumpall

  • Тестирование восстановления — необходимо отработать механизм восстановления данных из резервных копий. Это можно делать на тестовом сервере с помощью pg_restore. 

  • Контроль прав доступа — назначайте пользователям только необходимые полномочия для работы с данными. Не используйте аккаунт суперпользователя для рутинных задач.  

  • Ограничение количества подключений — настройте параметр CONNECTION LIMIT для предотвращения перегрузки сервера и облегчения контроля работы пользователей. 

  • Мониторинг состояния сервера — отслеживайте активные подключения, случаи блокировок и длительные запросы через системные представления, например pg_stat_activity.

  • Обновление версий — регулярно устанавливайте новые версии PostgreSQL для получения исправлений безопасности и ошибок.

  • Разделение сред — используйте отдельные серверы или кластеры для разработки, тестирования и продакшена, чтобы снизить риски случайных изменений важных данных.

  • Документирование конфигурации — фиксируйте ключевые параметры сервера, схемы резервного копирования и политики доступа, чтобы обеспечить прозрачность администрирования.

Для удобства и безопасности настройте автоматическое резервное копирование по расписанию. Копии храните в зашифрованном виде в физическом или облачном хранилище

Для удобства даем таблицу-шпаргалку с основными командами, которые пригодятся в работе с базами данных: 

Команда
Назначение
Пример использования
CREATE DATABASE
Создание новой базы данных
CREATE DATABASE mydb;
CREATE DATABASE ... OWNER
Создание БД с указанием владельца
CREATE DATABASE mydb OWNER app_user;
CREATE DATABASE ... TEMPLATE template0
Создание БД из чистого шаблона
CREATE DATABASE mydb TEMPLATE template0;
CREATE DATABASE ... ENCODING 'UTF8'
Указание кодировки
CREATE DATABASE mydb ENCODING 'UTF8';
CREATE DATABASE ... LC_COLLATE / LC_CTYPE
Настройка локали и сортировки
CREATE DATABASE mydb LC_COLLATE 'ru_RU.UTF-8' LC_CTYPE 'ru_RU.UTF-8' TEMPLATE template0;
CREATE DATABASE ... CONNECTION LIMIT
Ограничение числа подключений
CREATE DATABASE mydb CONNECTION LIMIT 50;
CREATE ROLE
Создание пользователя (роли)
CREATE ROLE app_user LOGIN PASSWORD 'StrongPassword123';
GRANT
Назначение прав доступа
GRANT SELECT, INSERT ON ALL TABLES IN SCHEMA public TO app_user;
ALTER DEFAULT PRIVILEGES
Права по умолчанию для новых объектов
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO app_user;
\c имя_базы
Подключение к базе в psql
\c app_db
psql -U user -d db
Подключение к базе через CLI
psql -U app_user -d app_db -h localhost
ALTER DATABASE
Изменение параметров БД
ALTER DATABASE mydb CONNECTION LIMIT 100;
ALTER DATABASE ... OWNER TO
Смена владельца базы данных
ALTER DATABASE mydb OWNER TO new_owner;
ALTER DATABASE ... RENAME TO
Переименование БД
ALTER DATABASE mydb RENAME TO new_name;

(требует отсутствия активных подключений)
DROP DATABASE
Удаление базы данных
DROP DATABASE mydb;
DROP DATABASE IF EXISTS
Удаление без ошибки, если БД нет
DROP DATABASE IF EXISTS mydb;
SHOW hba_file;
Показать путь к pg_hba.conf
SHOW hba_file;
SELECT pg_reload_conf();
Перезагрузка конфигурации
SELECT pg_reload_conf();
pg_dump
Резервное копирование одной БД
pg_dump mydb > backup.sql
pg_dumpall
Резервное копирование всего кластера
pg_dumpall > all_backup.sql
pg_restore
Восстановление из резервной копии
pg_restore -d mydb backup.dump

После отработки команд на локальной машине полезно попробовать развернуть базу в условиях, приближенных к боевым. Например, в сервисе Evolution Managed PostgreSQL от Cloud.ru — там управление кластером, масштабирование и регулярные бэкапы настраиваются через понятный интерфейс или API. Это хороший способ закрепить навыки администрирования и сразу перейти к реальной разработке без головной боли с железом.

Заключение

PostgreSQL предоставляет разные инструменты для создания администрирования баз данных. Вы можете работать через графический интерфейс pgAdmin или консоль psql. Предварительно разберитесь в архитектуре системы, ролях и полномочиях пользователей, шаблонах баз данных и настройках доступа. Обладая этими знаниями вы сможете выстроить управляемую и прозрачную инфраструктуру. 

Продукты из этой статьи:
Иконка-Advanced Relational Database Service for PostgreSQL
Advanced Relational Database Service for PostgreSQL
Иконка-Evolution Managed PostgreSQL®
Evolution Managed PostgreSQL®
Иконка-Evolution Object Storage
Evolution Object Storage
27 апреля 2026

Вам может понравиться