В SQL привилегия относится к определенному разрешению или праву на выполнение действия в базах данных на сервере. Например, в PostgreSQL привилегии могут включать привилегию входа на сервер для выполнения различных действий.
Это краткое руководство покажет вам, как получить привилегированную информацию о пользователе, доступном на сервере.
Типы привилегий
Прежде чем мы продолжим запрашивать у PostgreSQL информацию о пользователях, давайте выделим различные разрешения и то, что они позволяют делать назначенному им пользователю.
Типы привилегий в СУБД PostgreSQL:
- SELECT -привилегия select позволяет пользователю выбирать значения из любых столбцов любого табличного объекта. Табличные объекты в PostgreSQL включают таблицу, представление, материализованное представление и т.д.
- INSERT -разрешение на вставку позволяет пользователю вставлять новые строки в таблицу. Вы также можете предоставить право вставки в определенный столбец, позволяющее вставлять строки только в заданные столбцы.
- UPDATE -этот тип привилегии позволяет пользователю установки обновлять строки в любых столбцах таблицы или представления. Подобно разрешению на вставку, вы можете установить его для определенного столбца, чтобы пользователь мог обновлять строки только определенного столбца (столбцов).
- DELETE-это позволит пользователю удалить / удалить строку из любого изменяемого табличного объекта. Для этого требуется, чтобы у пользователя было разрешение SELECT, поскольку ему необходимо ссылаться на столбцы таблицы, чтобы проверить строки, которые необходимо удалить.
- CONNECT -разрешение на подключение позволяет пользователю подключаться к серверу. Этот тип разрешения проверяется при запуске соединения файлом pg_hba.conf.
- CREATE -привилегия create позволяет пользователю создавать либо новую схему, либо таблицу в установленной базе данных. Это также может позволить пользователю устанавливать расширения в базе данных. Если это разрешение отозвано для пользователя, оно не удаляет все существующие объекты до точки завершения.
- TRUNCATE -как следует из названия, он предоставляет пользователю разрешение на усечение таблицы.
- TRIGGER -позволяет пользователю создавать триггер для табличных объектов.
- ВРЕМЕННАЯ -позволяет пользователям создавать временную таблицу при подключении к установленной базе данных.
- EXECUTE -разрешение на выполнение позволяет пользователю вызывать функции или процедуры. Это единственный тип разрешения, который может применяться к функциям / процедурам.
- ССЫЛКИ -позволяет пользователю создавать ограничения внешнего ключа, которые ссылаются на таблицу или столбцы.
Как показать права пользователя
Перечислить привилегии пользователей просто. В psql используйте запрос \ du +, как показано в выводе ниже:
$ postgres=# \du+
Приведенный выше вывод показывает пользователей 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.