Кто имеет доступ к вашей базе? Смотрим всех пользователей PostgreSQL

Кто имеет доступ к вашей базе? Смотрим всех пользователей PostgreSQL

Вы уверены, что знаете всех, кто может зайти в вашу базу данных PostgreSQL? Управление пользователями — это основа безопасности ваших данных, и начинается она с простого вопроса: кто они? Служебные аккаунты, разработчики, администраторы — за всеми ними нужно следить.

Эта статья — ваш быстрый и эффективный способ получить полный список всех пользователей (или, как их правильно называет PostgreSQL, ролей) в системе. Мы покажем вам два проверенных метода, как это сделать буквально за пару секунд.

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

Один способ использует встроенную команду прямо в консоли psql, а второй — классический SQL-запрос. Оба метода рабочие, и мы разберем плюсы каждого. Готовы взять под контроль доступ к вашим данным? Тогда начинаем!


В данной статье будет показано как посмотреть список пользователей в PostgreSQL. Это популярная свободная объектно-реляционная СУБД. Разработана сообществом PostgreSQL. СУБД широко применяется в различных сферах - от простых веб-сайтов до интернет-магазинов и государственных сайтов.

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


Содержание статьи

Список пользователей PostgreSQL

Вывести список всех пользователей, присутствующих в СУБД PostgreSQL можно двумя способами - при помощи встроенной команды в оболочке psql - du и при помощи SQL запроса. Далее будут рассмотрены оба способа.

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

Для использования данного метода необходимо перейти в оболочку psql. psql - это терминальный клиент для работы с PostgreSQL. Позволяет выполнять различные запросы к базе данных. Также в psql присутствуют так называемые метакоманды одной из которых как раз является команда du. Для входа в оболочку psql необходимо выполнить следующую команду в терминале:

sudo -u postgres psql
Кто имеет доступ к вашей базе? Смотрим всех пользователей PostgreSQL

После ввода пароля пользователя, приглашение к вводу примет следующий вид:

postgres=#

Это означает что оболочка запущена от пользователя postgres. Данный пользователь присутствует в системе по умолчанию и имеет максимальные привилегии.

Для вывода списка всех пользователей присутствующих в PostgreSQL необходимо выполнить команду:

du
Кто имеет доступ к вашей базе? Смотрим всех пользователей PostgreSQL

Команда du выводит список пользователей (в терминологии postgres вместо слово пользователь используется слово роль) а также два дополнительных столбца - список атрибутов роли и членство роли если таковы имеются. Для выхода из команды необходимо нажать на клавишу q.

Вывод списка пользователей при помощи SQL запроса

Также вывести список пользователей можно при помощи SQL запроса. Для этого необходимо ввести следующий запрос в psql:

SELECT usename, usesuper, usecreatedb FROM pg_catalog.pg_user;
Кто имеет доступ к вашей базе? Смотрим всех пользователей PostgreSQL

Помимо вывода имена пользователей данный запрос также сообщит является ли пользователь суперпользователем (аналог пользователя root в Linux системах).

Если у пользователя есть права суперпользователя, то отображается бука t - True (права есть) в противном случае отображается бука f - False (прав нет). А также будет отображено есть ли у пользователя права на создание баз данных (t - да, f - нет).

Выводы

В данной небольшой статье было показано как вывести список пользователей PostgreSQL, присутствующих в СУБД. Существует два метода. Какой использовать зависит исключительно от ваших предпочтений. Если у вас остались вопросы задавайте их в комментариях!

Оставить комментарий


Кликните на изображение чтобы обновить код, если он неразборчив