A consulta CHECK GRANT é usada para verificar se o usuário/role atual recebeu um privilégio específico.
A sintaxe básica da consulta é a seguinte:
CHECK GRANT privilege[(column_name [,...])] [,...] ON {db.table[*]|db[*].*|*.*|table[*]|*}
privilege — Tipo de privilégio.
Se o usuário já tiver recebido o privilégio, a resposta check_grant será 1. Caso contrário, a resposta check_grant será 0.
Se table_1.col1 existir e o usuário atual tiver recebido o privilégio SELECT/SELECT(con) ou uma role (com o privilégio), a resposta será 1.
CHECK GRANT SELECT(col1) ON table_1;
┌─result─┐
│ 1 │
└────────┘
Se table_2.col2 não existir ou se o usuário atual não tiver o privilégio SELECT/SELECT(con) nem um role (com esse privilégio), a resposta será 0.
CHECK GRANT SELECT(col2) ON table_2;
┌─result─┐
│ 0 │
└────────┘
Ao especificar privilégios, você pode usar um asterisco (*) no lugar de um nome de tabela ou de banco de dados. Consulte GRANTS COM CURINGA para conferir as regras de uso de curingas. Última modificação em 1 de julho de 2026