- Пароль пользователя postgres — как задать и изменить пароль
- Изменить пароль пользователя Postgres
- Забыли пароль PostgreSQL для Windows
- 3 ответа
- Установка и базовая настройка PostgreSQL в Windows 10
- Установка PostgreSQL 11 в Windows 10
- Доступ к PostgreSQL по сети, правила файерволла
- Утилиты управления PostgreSQL через командную строку
- PgAdmin: Визуальный редактор для PostgresSQL
- Query Tool: использование SQL запросов в PostgreSQL
Пароль пользователя postgres — как задать и изменить пароль
Команды по администрированию базами и пользователями выполняются от имени системного пользователя postgres
root может стать им выполнив su — postgres
Затем можно без пароля попасть в интерфейс БД psql
Или то же самое одной командой
Пользователь может создать базу
Затем добавить пользователя и задать для него пароль
=# create user appadmin with encrypted password ‘jdfh8jhtghnjkfrvhyu’;
После этого пользователю нужно дать права для работы с базой данных
=# grant all privileges on db1 mydb to appadmin;
Изменить пароль пользователя Postgres
Пользователя можно создавать и задавать ему пароль двумя раздельными командами
sudo -u postgres createuser anotheruser
Вторая служит для изменения паролей уже существующих пользователей, выполняется из консоли psql
=# alter user anotheruser with encrypted password ‘NEW_STRONG_PASSWORD’;
Непосредственно для системного пользователя postgres пароль не нужен, им может стать root выполнив su как показано ранее. Если нужна авторизация root может установить для postgres новый пароль
Затем пароль нужно ввести дважды, отображаться он не будет.
Пользователь appadmin — не системный, он существует только в postgresql.
Подключаться к базе из консоли от имени этого пользователя нужно указывая имя базы и ключ -W
psql -h myhost -d db1 -U appadmin -W
Последний ключ не обязателен, но без него в интерактивном режиме в некоторых версиях СУБД не будет запрашиваться пароль, пароль должен запрашиваться.
Про создание дампов баз данных Postgres и их загрузку.
Забыли пароль PostgreSQL для Windows
Сегодня утром я пытаюсь подключить базу данных PostgreSQL на рабочем столе Windows 7 Professional.
Значение по умолчанию — «postgres», но, конечно же, я забыл, какой пароль я использовал, когда я его первоначально установил.
У меня есть googled и найдено сообщение , связанное с сбросом ваш пароль. Я последовал за этими шагами, но конечный результат немного отличается от упомянутого в сообщении. Я использовал «
, чтобы сбросить пароль для моей базы данных, но вместо успешного сообщения, которое я получаю:
«Произошла системная ошибка 5. Доступ запрещен.»
системная ошибка. Как избежать этой ошибки и сбросить пароль?
3 ответа
(Примечание. Это не очень важно для читателей, использующих PostgreSQL 9.2 или выше, из установщиков EDB, которые теперь имеют значительно упрощенную установку по умолчанию , используя NETWORK SERVICE , хотя вы можете настроить другие учетные записи) .
Я использовал net user postgres postgres для сброса пароля для моей базы данных, но вместо успешного сообщения я получаю «System error 5 has occurred. Access is denied.»
Сброс (или попытка сброса) пароля учетной записи службы. PostgreSQL не запускается в качестве администратора по соображениям безопасности, и установщик обычно устанавливает его с учетной записью пользователя postgres в PostgreSQL 9.1 и старше 1 . В Windows вы не можете запустить службу как пользователь, не сохраняя пароль пользователя в реестре, так что это делает установщик.
Если вы измените пароль для учетной записи пользователя Windows postgres , служба PostgreSQL больше не сможет запускаться. Так что не делайте этого, вам нужно будет исправить конфигурацию службы, чтобы сохранить обновленный пароль.
К счастью, я думаю, что другая ошибка помешала вам сделать это. Похоже, что вы, вероятно, запускаете свою командную строку, не используя «Запуск от имени администратора» в непривилегированной учетной записи пользователя Windows или машине с UAC, поэтому она не работает с правами доступа, необходимыми для изменения пароля для postgres .
Прежде чем пытаться изменить этот пароль, убедитесь, что это действительно то, что вы хотите сделать. В чем проблема, которую вы пытаетесь решить здесь? Вы пытаетесь установить обновление базы данных или что-то еще, запрашивающее пароль для пользователя postgres Windows?
Скорее всего, вы просто пытаетесь войти в базу данных. Для этого вы используете (к сожалению, полностью несвязанный) пароль, хранящийся в базе данных сам. Поскольку вы потеряли /забыли, вам придется его сбросить:
- Найдите pg_hba.conf , обычно в C:\Program Files\PostgreSQL\9.1\data\pg_hba.conf
- При необходимости установите для него разрешения, чтобы вы могли его изменить; ваша учетная запись пользователя может оказаться неспособной сделать это, пока вы не включите вкладку безопасности в диалоговом окне свойств, чтобы получить это право, используя переопределение администратора. В качестве альтернативы найдите в меню «Пуск» блокнот /блокнот ++, выберите «Запуск от имени администратора», затем нажмите «Файл» и «Открыть», чтобы открыть pg_hba.conf ).
Отредактируйте его, чтобы установить строку «хозяина» для пользователя «postgres» на хосте «127.0.0.1/32» для «доверия». Вы можете добавить строку, если ее нет; просто вставьте:
перед любые другие строки. (Вы можете игнорировать комментарии, строки, начинающиеся с # ).
Перезапустите службу PostgreSQL с панели управления Services (start-> run-> services.msc )
1. 9.2 теперь использует учетную запись NETWORKSERVICE , которая не требует пароля, поэтому эта проблема уходит .
Вам нужно различать пользователя вашей системы (Windows), называемого «postgres», и пользователя базы данных с тем же именем.
Установка и базовая настройка PostgreSQL в Windows 10
PostgreSQL — это бесплатная объектно-реляционная СУБД с мощным функционалом, который позволяет конкурировать с платными базами данных, такими как Microsoft SQL, Oracle. PostgreSQL поддерживает пользовательские данные, функции, операции, домены и индексы. В данной статье мы рассмотрим установку и краткий обзор по управлению базой данных PostgreSQL. Мы установим СУБД PostgreSQL в Windows 10, создадим новую базу, добавим в неё таблицы и настроим доступа для пользователей. Также мы рассмотрим основы управления PostgreSQL с помощью SQL shell и визуальной системы управления PgAdmin. Надеюсь эта статья станет хорошей отправной точкой для обучения работы с PostgreSQL и использованию ее в разработке и тестовых проектах.
Установка PostgreSQL 11 в Windows 10
Для установки PostgreSQL перейдите на сайт https://www.postgresql.org и скачайте последнюю версию дистрибутива для Windows, на сегодняшний день это версия PostgreSQL 11 (в 11 версии PostgreSQL поддерживаются только 64-х битные редакции Windows). После загрузки запустите инсталлятор.
В процессе установки установите галочки на пунктах:
- PostgreSQL Server – сам сервер СУБД
- PgAdmin 4 – визуальный редактор SQL
- Stack Builder – дополнительные инструменты для разработки (возможно вам они понадобятся в будущем)
- Command Line Tools – инструменты командной строки
Установите пароль для пользователя postgres (он создается по умолчанию и имеет права суперпользователя).
По умолчание СУБД слушает на порту 5432, который нужно будет добавить в исключения в правилах фаерволла.
Нажимаете Далее, Далее, на этом установка PostgreSQL завершена.
Доступ к PostgreSQL по сети, правила файерволла
Чтобы разрешить сетевой доступ к вашему экземпляру PostgreSQL с других компьютеров, вам нужно создать правила в файерволе. Вы можете создать правило через командную строку или PowerShell.
Запустите командную строку от имени администратора. Введите команду:
netsh advfirewall firewall add rule name=»Postgre Port» dir=in action=allow protocol=TCP localport=5432
- Где rule name – имя правила
- Localport – разрешенный порт
Либо вы можете создать правило, разрешающее TCP/IP доступ к экземпляру PostgreSQL на порту 5432 с помощью PowerShell:
New-NetFirewallRule -Name ‘POSTGRESQL-In-TCP’ -DisplayName ‘PostgreSQL (TCP-In)’ -Direction Inbound -Enabled True -Protocol TCP -LocalPort 5432
После применения команды в брандмауэре Windows появится новое разрешающее правило для порта Postgres.
Измените значение в пункте port = 5432 . Перезапустите службу сервера postgresql-x64-11 после изменений. Можно перезапустить службу с помощью PowerShell:
Restart-Service -Name postgresql-x64-11
Более подробно о настройке параметров в конфигурационном файле postgresql.conf с помощью тюнеров смотрите в статье.
Утилиты управления PostgreSQL через командную строку
Рассмотрим управление и основные операции, которые можно выполнять с PostgreSQL через командную строку с помощью нескольких утилит. Основные инструменты управления PostgreSQL находятся в папке bin, потому все команды будем выполнять из данного каталога.
- Запустите командную строку.
Основные команды PostgreSQL:
- Проверка установленной версии СУБД: psql –V
- Для создания новой базы данных воспользуйтесь утилитой createdb: createdb -U postgres testdb (где postgres суперпользователь, testdb новая база данных)Введите пароль суперпользователя.
- Проверить список активных баз: Psql -U postgres –l (пароль)
- С помощью инструмента createuser cоздадим нового пользователя: createuser –U postgres operator (где operator -имя нового пользователя)
- Предоставим пользователю привилегии суперпользователя (на практике этого делать не надо). Запустите интерактивную командную оболочку управления PostgreSQL (shell): psql –U postgres . С помощью SQL команды ALTER ROLE предоставим нужные права нашему пользователю: ALTER ROLE operator SUPERUSER CREATEROLE CREATEDB; . Мы предоставили пользователю права суперпользователя, права на создание ролей и баз данных.
- Для выводы списка пользователей и ролей в СУБД выполните команду: \du
PgAdmin: Визуальный редактор для PostgresSQL
Редактор PgAdmin служит для упрощения управления базой данных PostgresSQL в понятном визуальном режиме.
- Для запуска редактора запустите PgAdmin 4 в меню Пуск
- Для доступа нужно ввести пароль суперпользователя postgres
- В панели Servers вы можете раскрыть список активных БД.
- В панели управления возможно быстро создать нового пользователя и группу, предоставить ему права. Для этого Откройте меню Object -> Create -> Create Login/Group.
- Для создания новой базы данных достаточно выбрать: Database в меню Object -> Create. В новом поле указать имя базы и владельца.
По умолчанию все созданные базы хранятся в каталоге base по пути C:\Program Files\PostgreSQL\11\data\base.
Для каждой БД существует подкаталог внутри PGDATA/base, названный по OID базы данных в pg_database. Этот подкаталог по умолчанию является местом хранения файлов базы данных; в частности, там хранятся её системные каталоги. Каждая таблица и индекс хранятся в отдельном файле.
Для резервного копирования и восстановления лучше использовать инструмент Backup в панели инструментов Tools. Для автоматизации бэкапа PostgreSQL из командной строки используйте утилиту pg_dump.exe.
Query Tool: использование SQL запросов в PostgreSQL
Для написания SQL запросов в удобном графическом редакторе используется встроенный в pgAdmin инструмент Query Tool. Например, вы хотите создать новую таблицу в базе данных через инструмент Query Tool.
- Выберите базу данных, в панели Tools откройте Query Tool
- Создадим таблицу сотрудников:
CREATE TABLE employee
(
Id SERIAL PRIMARY KEY,
FirstName CHARACTER VARYING(30),
LastName CHARACTER VARYING(30),
Email CHARACTER VARYING(30),
Age INTEGER
);
Id — номер сотрудника, которому присвоен ключ SERIAL. Данная строка будет хранить числовое значение 1, 2, 3 и т.д., которое для каждой новой строки будет автоматически увеличиваться на единицу. В следующих строках записаны имя, фамилия сотрудника и его электронный адрес, которые имеют тип CHARACTER VARYING(30), то есть представляют строку длиной не более 30 символов. В строке — Age записан возраст, имеет тип INTEGER, т.к. хранит числа.
После того, как написали код SQL запроса в Query Tool, нажмите клавишу F5 и в базе будет создана новая таблица employee.
Для заполнения полей в свойствах таблицы выберите таблицу employee в разделе Schemas -> Tables. Откройте меню Object инструмент View/Edit Data.
Здесь вы можете заполнить данные в таблице.
После заполнения данных выполним инструментом Query простой запрос на выборку:
select Age from employee;