

 Amazon Redshift ne prendra plus en charge la création de nouveaux UDFs Python à partir du patch 198. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement 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\_TABLE\_PRIVILEGE
<a name="r_HAS_TABLE_PRIVILEGE"></a>

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

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

**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
<a name="r_HAS_TABLE_PRIVILEGE-arguments"></a>

 *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
<a name="r_HAS_TABLE_PRIVILEGE-return-type"></a>

BOOLEAN

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

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\_tables et pg\_user. 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}}';
```