Postgresql windows создать пользователя

Обновлено: 02.07.2024

В этой статье описывается создание пользователей на сервере службы "База данных Azure для PostgreSQL".

Чтобы узнать о том, как создавать пользователей подписки Azure, их привилегии и администрировать их, можно прочитать статью Управление доступом на основе ролей (Azure RBAC) или ознакомиться с тем, как настроить роли.

Учетная запись администратора сервера

При создании первой службы "База данных Azure для PostgreSQL" вы указали имя пользователя и пароль администратора сервера. Дополнительные сведения и пошаговые инструкции см. в этом кратком руководстве. Так как имя пользователя администратора сервера настраивает пользователь, можно найти выбранное имя на портале Azure.

Сервер службы "База данных Azure для PostgreSQL" создается с тремя определенными по умолчанию ролями. Эти роли можно просмотреть, выполнив команду: SELECT rolname FROM pg_roles;

  • azure_pg_admin
  • azure_superuser
  • пользователь-администратор сервера

Пользователь-администратор сервера является членом роли azure_pg_admin. Но учетная запись администратора сервера не входит в роль azure_superuser. Так как эта служба является управляемой службой PaaS, только Майкрософт входит в роль суперпользователя.

Подсистема PostgreSQL использует права для управления доступом к объектам базы данных, как описано в документации по продукту PostgreSQL. В базе данных Azure для PostgreSQL пользователю администратора сервера предоставляются следующие привилегии: LOGIN, СУПЕРПОЛЬЗОВАТЕЛЯ, INHERIT, CREATEDB, CREATEROLE и REPLICATION.

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

Как создать дополнительных администраторов в службе "База данных Azure для PostgreSQL"

Получите сведения о подключении и имя пользователя администратора. Чтобы подключиться к серверу базы данных, вам потребуются учетные данные администратора для входа и полное имя сервера. Вы можете легко найти данные для входа на странице Обзор сервера или на странице Свойства на портале Azure.

Используйте учетную запись и пароль администратора для подключения к серверу базы данных. Используйте предпочитаемое клиентское средство, например pgAdmin или psql. Если вы не знаете, как подключиться, см. раздел Быстрое начало

Измените и выполните следующий код SQL. Замените новым именем пользователя значение заполнителя <new_user>, а заполнитель пароля замените надежным паролем.

Как создать пользователей базы данных в службе "База данных Azure для PostgreSQL"

Получите сведения о подключении и имя пользователя администратора. Чтобы подключиться к серверу базы данных, вам потребуются учетные данные администратора для входа и полное имя сервера. Вы можете легко найти данные для входа на странице Обзор сервера или на странице Свойства на портале Azure.

Используйте учетную запись и пароль администратора для подключения к серверу базы данных. Используйте предпочитаемое клиентское средство, например pgAdmin или psql.

Измените и выполните следующий код SQL. Замените значение заполнителя <db_user> новым именем пользователя, а значение заполнителя <newdb> — именем базы данных. Замените заполнитель пароля надежным паролем.

Этот код SQL создает базу данных testdb для примера. Затем он создает пользователя в службе PostgreSQL и предоставляет ему привилегии для подключения к новой базе данных для этого пользователя.

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

Если пользователь создает таблицу "role", эта таблица принадлежит этому пользователю. Если другому пользователю требуется доступ к таблице, необходимо предоставить привилегии другому пользователю на уровне таблицы.

Чтобы войти на сервер, укажите эту базу данных и введите новое имя пользователя и пароль. В этом примере показана командная строка psql. После ввода этой команды вам будет предложено ввести пароль для имени пользователя. Укажите собственные имя сервера, имя базы данных и имя пользователя.

Дальнейшие действия

Откройте брандмауэр для IP-адресов компьютеров новых пользователей, чтобы обеспечить их подключение. Для этого ознакомьтесь с разделом Создание правил брандмауэра базы данных Azure для PostgreSQL и управление ими с помощью портала Azure или Azure CLI.

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

createuser — создать новую учётную запись PostgreSQL

Синтаксис

createuser [ параметр-подключения . ] [ параметр . ] [ имя_пользователя ]

Описание

createuser создаёт нового пользователя PostgreSQL , а если точнее — роль. Лишь суперпользователь и пользователи с привилегией CREATEROLE могут создавать новые роли, таким образом, createuser должна запускаться от их лица.

Чтобы создать дополнительного суперпользователя, необходимо подключиться от имени существующего, одного лишь права CREATEROLE недостаточно. Поскольку суперпользователи могут обходить все ограничения доступа в базе данных, к назначению этих полномочий не следует относиться легкомысленно.

createuser — это обёртка для SQL -команды CREATE ROLE . Создание пользователей с её помощью по сути не отличается от выполнения того же действия при обращении к серверу другими способами.

Параметры

createuser принимает следующие аргументы:

Задаёт имя создаваемого пользователя PostgreSQL . Это имя должно отличаться от имён всех существующих ролей в данной инсталляции PostgreSQL . -c номер
--connection-limit= номер

Устанавливает максимальное допустимое количество соединений для создаваемого пользователя. По умолчанию ограничение в количестве соединений отсутствует. -d
--createdb

Разрешает новому пользователю создавать базы данных. -D
--no-createdb

Запрещает новому пользователю создавать базы данных. Это поведение по умолчанию. -e
--echo

Вывести команды к серверу, генерируемые при выполнении createuser . -E
--encrypted

Шифровать пароль пользователя, хранимый в базе. Если флаг не указан, то для пароля используется поведение по умолчанию. -g role
--role= role

Указывает роль, к которой будет добавлена текущая роль в качестве члена группы. Допускается множественное использование флага -g . -i
--inherit

Создаваемая роль автоматически унаследует права ролей, в которые она включается. Это поведение по умолчанию. -I
--no-inherit

Роль не будет наследовать права ролей, в которые она включается. --interactive

Запросить имя для создаваемого пользователя, а также значения для флагов -d / -D , -r / -R , -s / -S , если они явно не указаны в командной строке. До версии PostgreSQL 9.1 включительно это было поведением по умолчанию. -l
--login

Новый пользователь сможет подключаться к серверу (то есть его имя может быть идентификатором начального пользователя сеанса). Это свойство по умолчанию. -L
--no-login

Новый пользователь не сможет подключаться к серверу. (Роль без права входа на сервер тем не менее полезна для управления разрешениями в базе данных.) -N
--unencrypted

Не шифровать пароль, хранимый в базе. Если флаг не указан, то для пароля используется поведение по умолчанию. -P
--pwprompt

Если флаг указан, то createuser запросит пароль для создаваемого пользователя. Если не планируется аутентификация по паролю, то пароль можно не устанавливать. -r
--createrole

Разрешает новому пользователю создавать другие роли, что означает наделение привилегией CREATEROLE . -R
--no-createrole

Запрещает пользователю создавать новые роли. Это поведение по умолчанию. -s
--superuser

Создаваемая роль будет иметь права суперпользователя. -S
--no-superuser

Новый пользователь не будет суперпользователем. Это поведение по умолчанию. -V
--version

Вывести версию createuser и завершить выполнение. --replication

Создаваемый пользователь будет наделён правом REPLICATION . Это рассмотрено подробнее в документации по CREATE ROLE . --no-replication

Создаваемый пользователь не будет иметь привилегии REPLICATION . Это рассмотрено подробнее в документации по CREATE ROLE . -?
--help

Вывести помощь по команде createuser .

createuser также принимает из командной строки параметры подключения:

Указывает имя компьютера, на котором работает сервер. Если значение начинается с косой черты, оно определяет каталог Unix-сокета. -p порт
--port= порт

Указывает TCP-порт или расширение файла локального Unix-сокета, через который сервер принимает подключения. -U имя_пользователя
--username= имя_пользователя

Имя пользователя для подключения (не имя создаваемого пользователя). -w
--no-password

Не выдавать запрос на ввод пароля. Если сервер требует аутентификацию по паролю и пароль не доступен с помощью других средств, таких как файл .pgpass , попытка соединения не удастся. Этот параметр может быть полезен в пакетных заданиях и скриптах, где нет пользователя, который вводит пароль. -W
--password

Принудительно запрашивать пароль перед подключением к базе данных.

Это несущественный параметр, так как createuser запрашивает пароль автоматически, если сервер проверяет подлинность по паролю. Однако чтобы понять это, createuser лишний раз подключается к серверу. Поэтому иногда имеет смысл ввести -W , чтобы исключить эту ненужную попытку подключения.

Переменные окружения

Параметры подключения по умолчанию

Эта утилита, как и большинство других утилит PostgreSQL , также использует переменные среды, поддерживаемые libpq (см. Раздел 32.14).

Диагностика

В случае возникновения трудностей, обратитесь к CREATE ROLE и psql . Переменные окружения и параметры подключения по умолчанию libpq будут применены при запуске утилиты, это следует учитывать при диагностике.

Примеры

Чтобы создать роль joe на сервере, используемом по умолчанию:

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

Чтобы создать того же пользователя joe с явно заданными атрибутами, подключившись к компьютеру eden , порту 5000:

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

В приведённом примере введённый пароль отображается лишь для отражения сути, на деле же он не выводится на экран. Как видно в выводе журнала команд, пароль зашифрован. Если же указан флаг --unencrypted , то он отобразиться в этом журнале неизменным, а также, возможно, и в других журналах сервера. По этой причине в этой ситуации стоит использовать флаг -e с особой осторожностью.


Шаг 7) Создайте базу данных и назначьте на нее владельца myguru.



PostgreSQL Создать пользовательский SQLShell (командная строка)

Вы можете создать пользователя с помощью командной строки

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

создаст пользователя Том

Создаст пользовательский том с привилегиями суперпользователя. Давайте посмотрим на следующий пример.


Шаг 2) Введите команду \ du в контрольный список пользователей


ПРИМЕЧАНИЕ. CREATE USER аналогична команде CREATE ROLE. Разница между этими двумя командами заключается в том, что при написании команды CREATE USER она по умолчанию находится в состоянии LOGIN, тогда как NOLOGIN предполагается, когда используется опция CRETE ROLE.

Добавить существующего пользователя в базу данных

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

Например, мы предоставляем пользователю mytest все привилегии для пользователя guru99.


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

Команда GRANT очень мощная. Вы можете дать пользователю детальные права, такие как «Выбрать», «Вставить», «Обновить».

Обновление PostgreSQL ПОЛЬЗОВАТЕЛЬ

Изменение существующих прав пользователя

Теперь, когда наш новый пользователь «mytest» существует, вы можете использовать ALTER USER для изменения разрешений, предоставленных библиотекарю.

Формат ALTER USER включает имя пользователя, за которым следуют некоторые параметры, чтобы сообщить PostgreSQL, какие допустимые изменения необходимо сделать:

Отзыв разрешений

Вам нужно использовать эту команду, когда вы делаете ошибку и неправильно назначаете разрешение, которое вы можете отозвать. Вы можете использовать команду ALTER USER без префикса перед разрешающими опциями.

Например, мы можем удалить статус SUPERUSER из mytest, например:

Используя \ du, вы увидите, что привилегия суперпользователя удалена.


Назначение разрешения

Используя \ du, вы увидите, что привилегия суперпользователя добавлена.


PostgreSQL, удаляющий пользователя

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


Как только мы изменим владельца базы данных, пользователь может быть удален

date

25.10.2019

directory

Windows 10, Windows Server 2016, Вопросы и ответы

comments

Один комментарий

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

где скачать PostgreSQL 11 для windows 10 x64

В процессе установки установите галочки на пунктах:

  • PostgreSQL Server – сам сервер СУБД
  • PgAdmin 4 – визуальный редактор SQL
  • Stack Builder – дополнительные инструменты для разработки (возможно вам они понадобятся в будущем)
  • Command Line Tools – инструменты командной строки

установка PostgreSQL 11 и дополнительных компонентов

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

PostgreSQL - задать пароль пользователю postgres

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

5432 - порт PostgreSQL по-умолчанию

Нажимаете Далее, Далее, на этом установка 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.

правила бранжмауэра для доступа к PostgreSQL по сети

Совет. Для изменения порта в установленной PostgreSQL отредактируйте файл postgresql.conf по пути C:\Program Files\PostgreSQL\11\data.

Измените значение в пункте port = 5432 . Перезапустите службу сервера postgresql-x64-11 после изменений. Можно перезапустить службу с помощью PowerShell:

Restart-Service -Name postgresql-x64-11

служба postgresql-x64-11

Более подробно о настройке параметров в конфигурационном файле postgresql.conf с помощью тюнеров смотрите в статье.

Утилиты управления PostgreSQL через командную строку

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

    Запустите командную строку.

Совет. Перед запуском СУБД, смените кодировку для нормального отображения в русской Windows 10. В командной строке выполните: chcp 1251

утилиты управления postgresql - C:\Program Files\PostgreSQL\11\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

PostgreSQL (shell): psql командная строка

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
);

Query Tool: использование SQL запросов в PostgreSQL

После того, как написали код SQL запроса в Query Tool, нажмите клавишу F5 и в базе будет создана новая таблица employee.

Для заполнения полей в свойствах таблицы выберите таблицу employee в разделе Schemas -> Tables. Откройте меню Object инструмент View/Edit Data.

Здесь вы можете заполнить данные в таблице.

редактор таблица в pgadmin

После заполнения данных выполним инструментом Query простой запрос на выборку:
select Age from employee;

Читайте также: