Учебники

7) Создать, изменить, добавить, удалить пользователя

В этом уроке вы узнаете

PostgreSQL Создать пользователя в PgAdmin

Шаг 1) Щелкните правой кнопкой мыши на Login / Group Role -> Create -> Click на Login / Group Role…

Шаг 2) Введите имя для входа

Шаг 3) В области определения

  1. Введите пароль
  2. Дата истечения срока действия аккаунта

Шаг 4) В разделе привилегий

  1. Переключить кнопку «Войти» на «Да»
  2. Переключить суперпользователя на ДА

Шаг 5) В разделе SQL

  1. Вы увидите запрос SQL для создания пользователя в соответствии с выборами, сделанными в предыдущих шагах
  2. Нажмите кнопку Сохранить

Шаг 6) Роль создана и отражена в дереве объектов

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

Шаг 8) В командной строке вы можете увидеть владельца «myguru»

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

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

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ

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

Syntax:
CREATE USER name WITH option

where the option can be:

|SUPERUSER | NOSUPERUSER 
| CREATEROLE | NOCREATEROLE 
| CREATEDB | NOCREATEDB 

| INHERIT | NOINHERIT 

| LOGIN | NOLOGIN 

| REPLICATION | NOREPLICATION 

| BYPASSRLS  | NOBYPASSRLS 

| CONNECTION LIMIT 

| ( ENCRYPTED ] PASSWORD 'password.' 

| VALID UNTIL 'timestamp1 

| IN ROLE role_name [, ...J 

| IN GROUP role_name [, ...]

| ROLE role_name [, ...]

| ADMIN role_name [, ...)

| USER role_name [, ...]

| SYSID uid

Пример:

CREATE USER tom;

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

CREATE USER tom WITH SUPERUSER;

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

Шаг 1) Мы создаем суперпользователя сроком действия до 3 — го Apri 2025 11:50:38 IST. Введите следующую команду

CREATE USER mytest WITH
	LOGIN
	SUPERUSER
	CREATEDB
	CREATEROLE
	INHERIT
	NOREPLICATION
	CONNECTION LIMIT -1
	VALID UNTIL '2025-04-03T11:50:38+05:30' 
	PASSWORD '123456';

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

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

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

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

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

GRANT ALL PRIVILEGES ON DATABASE guru99 TO mytest;

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

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

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

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

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

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

ALTER USER role_specification WITH OPTION1 OPTION2 OPTION3;

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

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

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

ALTER USER mytest WITH NOSUPERUSER;

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

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

Вы можете использовать права пользователя SUPERUSER обратно «mytest», используя следующую команду

ALTER USER mytest WITH SUPERUSER;

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

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

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

Syntax: DROP USER [user]

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

ERROR:  role "username" cannot be dropped because some objects depend on it

Пример:

  1. Аккаунт «myguru» является владельцем базы данных «demoDB».
  2. Введите команду DROP USER myguru
  3. Ошибка отображается

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

Шпаргалка

Вот важные команды

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [пользователь]

Команда для создания пользователя

ALTER USER role_specification

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

ALTER USER [пользователь]

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

ALTER USER [имя пользователя] С SUPERUSER

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

DROP USER [пользователь]

Команда для удаления пользователя