Как проверить привилегии (Privileges) Postgres для пользователя?

проверить привилегии (Privileges) Postgres для пользователя База данных

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

Это краткое руководство покажет вам, как получить привилегированную информацию о пользователе, доступном на сервере.

Типы привилегий

Прежде чем мы продолжим запрашивать у PostgreSQL информацию о пользователях, давайте выделим различные разрешения и то, что они позволяют делать назначенному им пользователю.

Типы привилегий в СУБД PostgreSQL:

  • SELECT -привилегия select позволяет пользователю выбирать значения из любых столбцов любого табличного объекта. Табличные объекты в PostgreSQL включают таблицу, представление, материализованное представление и т.д.
  • INSERT -разрешение на вставку позволяет пользователю вставлять новые строки в таблицу. Вы также можете предоставить право вставки в определенный столбец, позволяющее вставлять строки только в заданные столбцы.
  • UPDATE -этот тип привилегии позволяет пользователю установки обновлять строки в любых столбцах таблицы или представления. Подобно разрешению на вставку, вы можете установить его для определенного столбца, чтобы пользователь мог обновлять строки только определенного столбца (столбцов).
  • DELETE-это позволит пользователю удалить / удалить строку из любого изменяемого табличного объекта. Для этого требуется, чтобы у пользователя было разрешение SELECT, поскольку ему необходимо ссылаться на столбцы таблицы, чтобы проверить строки, которые необходимо удалить.
  • CONNECT -разрешение на подключение позволяет пользователю подключаться к серверу. Этот тип разрешения проверяется при запуске соединения файлом pg_hba.conf.
  • CREATE -привилегия create позволяет пользователю создавать либо новую схему, либо таблицу в установленной базе данных. Это также может позволить пользователю устанавливать расширения в базе данных. Если это разрешение отозвано для пользователя, оно не удаляет все существующие объекты до точки завершения.
  • TRUNCATE -как следует из названия, он предоставляет пользователю разрешение на усечение таблицы.
  • TRIGGER -позволяет пользователю создавать триггер для табличных объектов.
  • ВРЕМЕННАЯ -позволяет пользователям создавать временную таблицу при подключении к установленной базе данных.
  • EXECUTE -разрешение на выполнение позволяет пользователю вызывать функции или процедуры. Это единственный тип разрешения, который может применяться к функциям / процедурам.
  • ССЫЛКИ -позволяет пользователю создавать ограничения внешнего ключа, которые ссылаются на таблицу или столбцы.
Читайте также:  Как изменить пароль пользователя PostgreSQL?

Как показать права пользователя

Перечислить привилегии пользователей просто. В psql используйте запрос \ du +, как показано в выводе ниже:

$ postgres=# \du+

Приведенный выше вывод показывает пользователей Postgres

Приведенный выше вывод показывает пользователей Postgres и temp с соответствующими разрешениями.

Другой способ сделать это — использовать схему information_schema и запросить таблицу table_privileges следующим образом:

SELECT * FROM information_schema.table_privileges LIMIT 5;

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

Вышеупомянутый запрос покажет подробную информацию о правах пользователя в базах данных

Чтобы отфильтровать конкретного пользователя, вы можете добавить предложение WHERE:

SELECT * from information_schema.table_privileges WHERE grantee = ‘postgres’ LIMIT 5;

Заключение

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

Оцените статью
bestprogrammer.ru
Добавить комментарий