

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# HAS\$1TABLE\$1PRIVILEGE
<a name="r_HAS_TABLE_PRIVILEGE"></a>

Retorna `true` se o usuário tiver o privilégio especificado para a tabela especificada; caso contrário, retorna `false`.

## Sintaxe
<a name="r_HAS_TABLE_PRIVILEGE-synopsis"></a>

**nota**  
Essa é uma função do nó de liderança. Essa função retorna um erro se fizer referência a uma tabela criada por usuário, a uma tabela de sistema STL ou STV ou a uma exibição de sistema SVV ou SVL. Para obter mais informações sobre privilégios, consulte [GRANT](r_GRANT.md).

```
has_table_privilege( [ user, ] table, privilege)
```

## Argumentos
<a name="r_HAS_TABLE_PRIVILEGE-arguments"></a>

 *usuário*   
O nome do usuário para verificar os privilégios da tabela. O padrão é verificar o usuário atual. 

 *table*   
Tabela associada ao privilégio. 

 *privilege*   
Privilégio a verificar. Os valores válidos são os seguintes:   
+ SELECT
+ INSERT
+ UPDATE
+ DELETE
+ DROP
+ REFERENCES

## Tipo de retorno
<a name="r_HAS_TABLE_PRIVILEGE-return-type"></a>

BOOLEAN

## Exemplos
<a name="r_HAS_TABLE_PRIVILEGE-examples"></a>

A consulta a seguir descobre que o usuário GUEST não tem privilégio SELECT na tabela LISTING. 

```
select has_table_privilege('guest', 'listing', 'select');

has_table_privilege
---------------------
false
```

A consulta a seguir lista os privilégios da tabela, incluindo seleção, inserção, atualização e exclusão, usando a saída das tabelas de catálogo pg\$1tables e pg\$1user. Isso é apenas um exemplo. Talvez seja necessário especificar um nome de esquema e nomes de tabelas do seu banco de dados. Para obter mais informações, consulte [Consultar as tabelas de catálogo](c_join_PG.md).

```
SELECT 
     tablename
     ,usename
     ,HAS_TABLE_PRIVILEGE(users.usename, tablename, 'select') AS sel
     ,HAS_TABLE_PRIVILEGE(users.usename, tablename, 'insert') AS ins
     ,HAS_TABLE_PRIVILEGE(users.usename, tablename, 'update') AS upd
     ,HAS_TABLE_PRIVILEGE(users.usename, tablename, 'delete') AS del
FROM
(SELECT * from pg_tables
WHERE schemaname = 'public' and tablename in ('event','listing')) as tables
,(SELECT * FROM pg_user) AS users;

tablename | usename   |  sel   |  ins  |  upd  | del
----------+-----------+--------+-------+-------+-------
event     |  john     |  true  | true  | true  | true	
event     |  sally    |  false | false | false | false	
event     |  elsa     |  false | false | false | false	
listing   |  john     |  true  | true  | true  | true	
listing   |  sally    |  false | false | false | false	
listing   |  elsa     |  false | false | false | false
```

A consulta anterior também contém uma junção cruzada. Para obter mais informações, consulte [Exemplos de JOIN](r_Join_examples.md). Para consultar tabelas que não estão no esquema `public`, remova a condição `schemaname` da cláusula WHERE e use o exemplo a seguir antes da consulta.

```
SET SEARCH_PATH to 'schema_name';
```