

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](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>

ユーザーが、指定されたテーブルに対して指定された権限を持っている場合、`true` を返し、それ以外の場合は `false` を返します。

## 構文
<a name="r_HAS_TABLE_PRIVILEGE-synopsis"></a>

**注記**  
これはリーダーノード関数です。この関数は、ユーザー作成テーブル、STL または STV システムテーブル、SVV または SVL システムビューを参照する場合、エラーを返します。権限の詳細については、「[GRANT](r_GRANT.md)」を参照してください。

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

## 引数
<a name="r_HAS_TABLE_PRIVILEGE-arguments"></a>

 *ユーザー*   
テーブルに対する権限を検査するユーザーの名前。デフォルトでは、現在のユーザーが検査されます。

 *table*   
権限に関連付けられているテーブル。

 *privilege*   
検査する権限。有効な値は以下のとおりです。  
+ SELECT
+ INSERT
+ UPDATE
+ DELETE
+ DROP
+ REFERENCES

## 戻り型
<a name="r_HAS_TABLE_PRIVILEGE-return-type"></a>

BOOLEAN

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

次のクエリでは、GUEST ユーザーが LISTING テーブルに対して SELECT 権限を持っていないことを検出します。

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

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

次のクエリは、pg\$1tables と pg\$1user カタログテーブルからの出力を使用して、選択、挿入、更新、削除などのテーブル権限を一覧表示します。これはサンプルのみです。データベースからスキーマ名とテーブル名を指定する必要がある場合があります。詳細については、「[カタログテーブルへのクエリの実行](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
```

前のクエリにはクロス結合も含まれています。詳細については、「[JOIN 句の例](r_Join_examples.md)」を参照してください。`public` スキーマにないテーブルをクエリするには、WHERE 句から `schemaname` 条件を削除し、クエリの前に次の例を使用します。

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