Как установить PostgreSQL Linux часть 5.

Введение.

Продолжаем тему обеспечения безопасности пользователей БД PgSQL, начало см. PostgreSQL Linux часть 5.

В статье PostgreSQL Linux часть 5, будем рассматривать практические примеры и действия с командами управления пользовательскими ролями.

Все статьи посвящённые PostgreSQL см.

тэг БД или поиск postgres

Подготовка PostgreSQL Linux часть 5.

  • Стенд
    • Cервер ALT Linux, имя: lin-pq; IP 10.0.2.11;
      • PostgreSQL X.X
        • метод аутентификации md5
    • Simply Linux, имя: sl, IP=10.0.2.30
    • Пользователь, имя: trt

Команда createuser.

После того, как был добавлен новый пользователь trt с правами администратора, становится доступна консольная команда creatuser.

Роль trt позволяет создать нового пользователя xre с консоли сервера.

Создание пользователя базы PgSQL.
Создание пользователя базы PgSQL с консоли сервера.

Пользователь trt имеет учётную запись на сервере, где установлен PgSQL

Теперь, эти же действия произведём с удалённой рабочей станции.

Создание пользователя PgSQL с удалённой рабочей станции.
Создание пользователя PgSQL с удалённой рабочей станции.
  • Ключи команды createuser
    • -p порт сервера (если стандартный, 5432, можно не указывать)
    • -h имя\IP сервера PgSQL
    • -i подтверждение об удалении роли
    • -e вывести журнал действий

В строке CREATE ROLE указаны какие роли доступны/Не доступны при создании.

Проверяем наши действия с помощью клиента psql.

Проверка создания пользователя PgSQL.
Смотреть права пользователя trt с помощью psql.

Команда dropuser.

Команда dropuser удаляет пользователя, только суперпользователь или пользователь с привилегией CREATEROLE могут выполнять данные действия.

Необходимо быть суперпользователем, чтобы удалить учётную запись другого суперпользователя

Выполним удаление пользователя xre, находясь на удалённой рабочей станции и проверим свои действия.

Удаление пользователя с помощью утилиты psql.

Находясь на консоли сервера команда dropuser может выполнятся без ключа «h».

CREATE ROLE.

Встроенная в оболочку psql команда CREATE ROLE имеет в своём арсенале более широкие возможности чем createuser.

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

Подключимся к серверу с помощью терминального клиента psql.

[trt@sl ~]$ psql -h 10.0.2.11 -U trt
Пароль пользователя trt: **********

Создадим роль, для которой разрешён вход.

trt=# CREATE ROLE xre LOGIN;

Сформируем роль с паролем.

trt=# CREATE USER xre WITH PASSWORD 'jwdold$%^;

Инициируем роль, которая может создавать БД и управлять др.ролями.

trt=# CREATE ROLE admbd WITH CREATEDB CREATEROLE;

DROP ROLE.

Команда DROP ROLE удаляет роль в базе данных, освобождая объекты от ролевой зависимости.

Перед удалением, необходимо освободить все принадлежащие роли объекты и удалить права этой роли на другие объекты.

Удалим существующею роль xre с используя psql.

[trt@sl ~]$ psql -h 10.0.2.11 -U trt
Пароль пользователя trt:********
trt=# DROP ROLE xre;
DROP ROLE

Можете проверить свои действия самостоятельно, с помощью клиента psql с ключом \du.

ALTER ROLE.

Команда ALTER ROLE изменяет атрибуты и название роли в PgSQL.

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

[trt@sl ~]$ createuser -h 10.0.2.11 -i -e xre
Пароль: ********** 
SELECT pg_catalog.set_config('search_path', '', false);
CREATE ROLE xre NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;

Сделаем удалённый вход на сервер.

[trt@sl ~]$ psql -h 10.0.2.11 -U trt
Пароль пользователя trt:********* 

Меняем пароль роли.

trt=# ALTER ROLE trt WITH PASSWORD 'hu6h44e';
ALTER ROLE

Удаляем пароль у роли.

trt=# ALTER ROLE xre WITH PASSWORD NULL;
ALTER ROLE

Добавляем права роли xre для управление другими ролями и созданием новых баз и проверяем свои действия.

trt=# ALTER ROLE xre CREATEROLE CREATEDB;
ALTER ROLE
trt=# \du
                Список ролей
Имя роли |      Атрибуты             | Член ролей                                         
---------+------------------------------------------------
xre      | Создаёт роли, Создаёт БД  | {}                                              

В заключение, самостоятельно, удалим роль xre, используя команду DROP ROLE.

Добавление роли в группу.

Нам остаётся рассмотреть вопрос, участия одной роли членом другой. По аналогии с OC Windows, Linux, где есть группы, в PgSQL так же можно работать с групповыми политиками называемыми ролями для групп.

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

Для выполнения этих задач существуют команды GRANT и REVOKE

Команда GRANT.

Команда GRANT добавляет одни роли членами других и назначает права, для доступа к объектам баз данных.

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

psql -h 192.168.100.11 -U trt
Пароль пользователя trt:*********
trt=# CREATE ROLE xre;
CREATE ROLE
trt=# \du
                     Список ролей
Имя роли |             Атрибуты                        | Член ролей 
---------+---------------------------------------------+------------
trt      | Суперпользователь, Создаёт роли, Создаёт БД |  {}
xre      | Вход запрещён                               |  {}

Добавим роль LOGIN для xre и сделаем его членом группы trt роли.

...
trt=# ALTER ROLE xre LOGIN;
ALTER ROLE
trt=# \du
                     Список ролей
Имя роли |             Атрибуты                        | Член ролей 
---------+---------------------------------------------+------------
trt      | Суперпользователь, Создаёт роли, Создаёт БД |  {}
xre      |                                             |  {}

trt=# GRANT trt TO xre;
GRANT ROLE
trt=# \du
                     Список ролей
Имя роли |             Атрибуты                        | Член ролей 
---------+---------------------------------------------+------------
trt      | Суперпользователь, Создаёт роли, Создаёт БД |  {}
xre      |                                             | {trt}

Обратите внимание на столбец «Член ролей» пользователя xre.

Команда REVOKE.

Команда REVOKE удаляет из роли права, назначенных ранее.

...
trt=# REVOKE trt FROM xre;
trt=# \du
                     Список ролей
Имя роли |             Атрибуты                        | Член ролей 
---------+---------------------------------------------+------------
trt      | Суперпользователь, Создаёт роли, Создаёт БД | {}
xre      |                                             | {}

Столбец «Член ролей» пользователя xre изменился.

Заключение.

Эта статья заканчивает курс коротких лекций для начинающих, которые хотят получить общие сведения и начальную практику по установке и управлению PostgreSQL. Позже, вероятно, добавится ещё одна статья, PostgreSQL Linux часть 6, в которой будет рассказано, как создавать базы, таблицы и SQL запросы.

Полезные ссылки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Copyright © 2011-2024
Все права защищены.
При перепечатке указать источник: kabtim.ru
Контакты