

 Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dalla Patch 198. Le UDF Python esistenti continueranno a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# HAS\_TABLE\_PRIVILEGE
<a name="r_HAS_TABLE_PRIVILEGE"></a>

Restituisce `true` se l'utente ha il privilegio specificato per la tabella specificata, altrimenti restituisce `false`.

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

**Nota**  
Questa è una funzione del nodo principale. Questa funzione restituisce un errore se fa riferimento a una tabella creata dall'utente, a una tabella di sistema STL o STV o a una vista di sistema SVV o SVL. Per ulteriori informazioni sui privilegi, consultare [GRANT](r_GRANT.md).

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

## Arguments (Argomenti)
<a name="r_HAS_TABLE_PRIVILEGE-arguments"></a>

 *utente*   
Il nome dell'utente per controllare i privilegi della tabella. Il valore predefinito serve a controllare l'utente corrente. 

 *tabella*   
Tabella associata al privilegio. 

 *privilegio*   
Privilegio da controllare. I valori validi sono i seguenti.   
+ SELECT
+ INSERT
+ UPDATE
+ DELETE
+ DROP
+ REFERENCES

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

BOOLEAN

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

La seguente query trova che l'utente GUEST non ha il privilegio SELECT nella tabella LISTING. 

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

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

La seguente query elenca i privilegi delle tabelle, inclusi select, insert, update e delete, utilizzando l'output delle tabelle del catalogo pg\_tables e pg\_user. Si tratta solo di un esempio, Potrebbe essere necessario specificare un nome di schema e i nomi delle tabelle del database. Per ulteriori informazioni, consulta [Query sulle tabelle di catalogo](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
```

La query precedente contiene anche un cross join. Per ulteriori informazioni, consulta [Esempi di JOIN](r_Join_examples.md). Per interrogare tabelle che non si trovano nello schema `public`, rimuovi la condizione `schemaname` dalla clausola WHERE e utilizza il seguente esempio prima della query.

```
SET SEARCH_PATH to '{{schema_name}}';
```