

 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>

**참고**  
CURRENT\$1SCHEMA는 리더 노드 함수이기 때문에 사용자 생성 테이블, STL 또는 STV 시스템 테이블, SVV 또는 SVL 시스템 뷰를 참조하는 경우에는 오류를 반환합니다. 권한에 대한 자세한 내용은 [GRANT](r_GRANT.md) 섹션을 참조하세요.

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

## 인수
<a name="r_HAS_TABLE_PRIVILEGE-arguments"></a>

 *user*   
테이블 권한 유무를 확인할 사용자 이름입니다. 기본적으로 현재 사용자를 검사합니다.

 *테이블*\$1   
권한과 연결되어 있는 테이블입니다.

 *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';
```