Перейти к основному содержанию
Перейти к основному содержанию

Оператор CHECK GRANT

Запрос CHECK GRANT используется для проверки, была ли текущему пользователю или роли предоставлена определённая привилегия.

Синтаксис

Основной синтаксис запроса следующий:

CHECK GRANT privilege[(column_name [,...])] [,...] ON {db.table[*]|db[*].*|*.*|table[*]|*}
  • privilege — тип права доступа.

Примеры

Если пользователю ранее была предоставлена привилегия, значение поля check_grant в ответе будет равно 1. В противном случае значение check_grant будет равно 0.

Если table_1.col1 существует и у текущего пользователя есть привилегия SELECT/SELECT(con) или роль с такой привилегией, значение в ответе будет равно 1.

ПРОВЕРИТЬ ПРАВО GRANT SELECT(col1) НА table_1;
┌─result─┐
│      1 │
└────────┘

Если table_2.col2 не существует или у текущего пользователя нет привилегии SELECT/SELECT(con) либо роли с такой привилегией, ответ будет 0.

CHECK GRANT SELECT(col2) ON table_2;
┌─result─┐
│      0 │
└────────┘

Подстановочные символы

При указании привилегий можно использовать звездочку (*) вместо имени таблицы или базы данных. Правила использования подстановочных символов описаны в разделе WILDCARD GRANTS.