Как да създадете потребител в PostgreSQL Използване на PgAdmin

⚡ Умно обобщение

Създаване на потребител в PostgreSQL може да се направи визуално в pgAdmin или с командата CREATE USER в SQL Shell. След това можете да предоставите привилегии с GRANT, да промените роли с ALTER USER и да премахнете акаунти с DROP USER.

  • 🖱️ Създаване в pgAdmin: Щракнете с десния бутон върху „Вход/Групови роли“, въведете име, задайте парола и привилегии, след което запазете, за да създадете потребителя.
  • 💻 Команда CREATE USER: В SQL Shell, опциите CREATE USER name WITH задават потребителско име, суперпотребител и парола в една команда.
  • 🔑 Предоставяне на достъп: ПРЕДОСТАВЕТЕ ВСИЧКИ ПРИВИЛЕГИИ ВЪРХУ БАЗАТА ДАННИ db НА потребителя дава на съществуващ потребител достъп до база данни.
  • 🔧 ПРОМЯНА НА ПОТРЕБИТЕЛЯ: ALTER USER променя разрешенията на ролята, добавяйки или отменяйки привилегии, като например SUPERUSER.
  • 🗑️ ИЗПУСКАНЕ НА ПОТРЕБИТЕЛЯ: DROP USER премахва акаунт, но само след като той вече не притежава никакви обекти от базата данни.
  • 🧾 Роля срещу Потребител: CREATE USER е по подразбиране LOGIN, докато CREATE ROLE е по подразбиране NOLOGIN; в противен случай те са еднакви.

Как да създадете потребител в PostgreSQL Използване на PgAdmin

Как се създава PostgreSQL Потребител в PgAdmin

Следва стъпка по стъпка процес за създаване на потребител PostgreSQL PgAdmin:

Стъпка 1) Щракнете с десния бутон върху Вход

В първата стъпка щракнете с десния бутон върху Роля на група за вход -> Създаване -> Щракнете върху Роля на група за вход...

Създаване на PostgreSQL Потребител в PgAdmin

Стъпка 2) Създайте роля за влизане/група

Сега въведете името за вход

Създаване на PostgreSQL Потребител в PgAdmin

Стъпка 3) Кликнете върху Дефиниция и въведете подробности

  1. Въведете паролата
  2. Дата на изтичане на акаунта

Създаване на PostgreSQL Потребител в PgAdmin

Стъпка 4) Секцията за привилегии

  1. Toggle Можете да влезете на ДА
  2. Toggle Суперпотребител на ДА

Създаване на PostgreSQL Потребител в PgAdmin

Стъпка 5) - SQL раздел

  1. Ще видите SQL заявката за създаване на потребител според избора, направен в предишните стъпки
  2. Щракнете върху бутона Запазване

Създаване на PostgreSQL Потребител в PgAdmin

Стъпка 6) Ролята е създадена

Сега ролята се отразява в дървото на обектите.

Създаване на PostgreSQL Потребител в PgAdmin

Стъпка 7) Създаване на База данни

Сега присвоете собственик myguru към него, както е показано по-долу в примера за създаване на потребител Postgres.

Създаване на PostgreSQL Потребител в PgAdmin

Стъпка 8) Командният ред

Сега можете да видите, че собственикът е myguru.

Създаване на PostgreSQL Потребител в PgAdmin

PostgreSQL Създаване на потребителски SQLShell (Команден ред)

Можете да създадете потребител, като използвате командата от командния ред

СЪЗДАЙТЕ ПОТРЕБИТЕЛ

Този метод за създаване на потребител с парола в Postgres е по-удобен за програмисти и администратори, тъй като те имат достъп до конзолата на PostgreSQL сървър. Освен това те се нуждаят от създаване на потребители на Postgres и изпълнение с една команда вместо влизане и използване на интерфейса на PostgreSQL клиент.

Синтаксис:

CREATE USER name [ WITH ] option [ ... ]

where option can be:

      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | REPLICATION | NOREPLICATION
    | BYPASSRLS | NOBYPASSRLS
    | CONNECTION LIMIT connlimit
    | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
    | VALID UNTIL 'timestamp'
    | IN ROLE role_name [, ...]
    | IN GROUP role_name [, ...]
    | ROLE role_name [, ...]
    | ADMIN role_name [, ...]
    | USER role_name [, ...]
    | SYSID uid

Пример:

CREATE USER tom;

ще създаде потребителски tom

CREATE USER tom WITH SUPERUSER;

Ще създадем потребител tom с права на суперпотребител. Нека видим следния пример.

Стъпка 1) Създаваме суперпотребител, валиден до 3rd Април 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';

Създайте потребителски SQLShell

Стъпка 2) Въведете команда \du в контролния списък на потребителите

Създайте потребителски SQLShell

ЗАБЕЛЕЖКА: Командата CREATE USER е същата като командата CREATE ROLE. Разликата между двете команди е, че когато командата Postgres CREATE user е написана, тя по подразбиране е в състояние LOGIN, докато когато се използва опцията CREATE ROLE, се приема състояние NOLOGIN.

Добавете съществуващ потребител към база данни

Можете да предоставите на потребител привилегии за достъп до база данни.

Например, предоставяме на потребителя „mytest“ всички привилегии на потребител guru99

GRANT ALL PRIVILEGES ON DATABASE guru99 TO mytest;

Добавете съществуващ потребител към база данни

След изпълнение на PostgreSQL добавяне на потребителска команда, потребителят ще има достъп до базата данни с дадените разрешения.

Командата GRANT е много мощна. Можете да дадете подробни привилегии като избор, вмъкване, актуализиране на потребител.

PostgreSQL USER се актуализира

Промяна на съществуващи потребителски разрешения

Сега, когато нашият нов потребител „mytest“ съществува, можете да използвате ALTER USER, за да промените разрешенията, предоставени на библиотекаря.

Форматът на ALTER USER Postgres включва името на потребителя, последвано от някои опции за разказване PostgreSQL кои допустими промени да направите:

ALTER USER role_specification WITH OPTION1 OPTION2 OPTION3;

Revполучаване на разрешения

Трябва да използвате тази команда, когато направите грешка и грешно зададете разрешение, което може да искате да отмените. Можете да използвате командата ALTER USER без префикс преди разрешителните опции.

Например, можем да премахнем статуса SUPERUSER от mytest като:

ALTER USER mytest WITH NOSUPERUSER;

Използвайки \du, ще видите, че привилегията на суперпотребител е премахната.

Revполучаване на разрешения

Предоставяне на разрешение

Можете да използвате потребителско разрешение 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. Показва се грешка

PostgreSQL Изтриване на потребител

След като променим собственика на базата данни, потребителят може да бъде изтрит

PostgreSQL Изтриване на потребител

Cheat Sheet

Ето важни команди

Команди Descriptйон
CREATE USER [user]
Команда за създаване на потребител
ALTER USER role_specification
Промяна на съществуващи потребителски разрешения
ALTER USER [user]
Revполучаване на разрешения
ALTER USER [user name] WITH SUPERUSER
Предоставяне на разрешение
DROP USER [user]
Команда за изтриване на потребител

Въпроси и Отговори

В psql shell изпълнете командата \du, за да изброите всички роли и техните атрибути. Можете също да направите заявка към системния каталог с SELECT rolname FROM pg_roles, за да получите същата информация програмно.

Използвайте ALTER USER, например ALTER USER mytest WITH PASSWORD 'newpassword'. Промяната влиза в сила незабавно. Паролите се съхраняват криптирани и само суперпотребителите или самият потребител могат да ги променят.

In PostgreSQLПотребителите и ролите са един и същ обект. CREATE USER създава роля, която може да влиза по подразбиране, докато CREATE ROLE създава такава, която не може да влиза, освен ако не добавите атрибута LOGIN.

Изкуственият интелект може да генерира оператори CREATE USER, GRANT и ALTER USER от просто описание на необходимия ви достъп и да обясни всяка привилегия. Това ви помага да прилагате защита с най-ниски привилегии, без да запомняте синтаксис.

Да. Изкуственият интелект може да предложи подробни GRANT команди, които дават само необходимите привилегии, да предупреждава срещу предоставянето на широк достъп на суперпотребител и да препоръчва използването на роли за групиране на разрешения за по-лесно и безопасно управление.

Обобщете тази публикация с: