

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# HAS\$1TABLE\$1PRIVILEGE
HAS\$1TABLE\$1PRIVILEGE

Renvoie `true` si l’utilisateur dispose du privilège spécifié pour la table indiquée et renvoie `false` dans le cas inverse.

## Syntaxe
Syntaxe

**Note**  
Il s’agit d’une fonction de nœud principal. Cette fonction renvoie une erreur si elle fait référence à une table créée par l’utilisateur, à une table système STL ou STV ou à une vue système SVV ou SVL. Pour plus d’informations sur les privilèges, consultez [GRANT](r_GRANT.md).

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

## Arguments
Arguments

 *user*   
Nom de l’utilisateur pour vérifier les privilèges de table. Le comportement par défaut consiste à vérifier l’utilisateur actuel. 

 *table*   
Table associée au privilège. 

 *privilege*   
Privilège à vérifier. Les valeurs possibles sont les suivantes :   
+ SELECT
+ INSERT
+ UPDATE
+ DELETE
+ DROP
+ REFERENCES

## Type de retour
Type de retour

BOOLEAN

## Exemples
Exemples

La requête suivante trouve que l’utilisateur GUEST ne dispose pas du privilège SELECT sur la table LISTING. 

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

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

La requête suivante répertorie les privilèges des tables, notamment les privilèges de sélection, d’insertion, de mise à jour et de suppression, en utilisant les résultats des tables de catalogue pg\$1tables et pg\$1user. Il s’agit uniquement d’un exemple. Il se peut que vous deviez spécifier un nom de schéma et des noms de tables à partir de votre base de données. Pour plus d’informations, consultez [Interrogation des tables catalogue](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 requête précédente contient également une jointure croisée. Pour plus d’informations, consultez [Exemples de clause JOIN](r_Join_examples.md). Pour interroger des tables qui ne se trouvent pas dans la schéma `public`, retirez la condition `schemaname` de la clause WHERE et utilisez l’exemple suivant avant d’exécuter votre requête.

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