SHOW CONTACTS
SHOW CONTACTS
SHOW CONTACTS 명령은 접근 권한(privilege)이 있는 연락처(contact) 목록을 보여주는 명령이에요. 세션의 현재 데이터베이스·스키마, 지정한 데이터베이스·스키마, 또는 전체 계정의 연락처 객체를 나열할 수 있어요.
출처: 문서
본문
이 명령은 접근 권한이 있는 연락처를 나열해요. 각 객체의 메타데이터와 속성이 출력에 포함되며, 객체는 데이터베이스, 스키마, 객체 이름 기준 사전 순(lexicographic)으로 정렬돼요. 결과를 필터링하려면 이 행 순서를 유념해야 해요.
관련 명령: CREATE CONTACT, ALTER CONTACT, DROP CONTACT.
구문 (Syntax)
SHOW CONTACTS [ LIKE '<pattern>' ]
[ IN
{
ACCOUNT |
DATABASE |
DATABASE <database_name> |
SCHEMA |
SCHEMA <schema_name> |
<schema_name>
}
]
[ STARTS WITH '<name_string>' ]
[ LIMIT <rows> ]
[ LIMIT <rows> [ FROM '<name_string>' ] ]
파라미터 (Parameters)
-
LIKE
<pattern>— 명령 출력을 객체 이름으로 필터링해요. 대소문자를 구분하지 않는 패턴 매칭이며 SQL 와일드카드 문자(%와_)를 지원해요. 기본값: 없음. -
[ IN ... ] — 명령의 범위를 선택적으로 지정해요. 다음 중 하나를 지정해요:
ACCOUNT— 전체 계정의 레코드 반환.DATABASE또는DATABASE db_name— 현재 사용 중인 데이터베이스 또는 지정한 데이터베이스의 레코드 반환. 데이터베이스가 사용 중이 아닌데db_name없이DATABASE를 지정하면 키워드가 출력에 영향을 주지 않아요. 참고: 데이터베이스 컨텍스트에서IN절 없이 SHOW 명령을 사용하면 예상보다 적은 결과가 나올 수 있어요.IN절 없이 같은 이름의 객체는 한 번만 표시돼요. 예를 들어schema1에t1테이블과schema2에t1테이블이 있고 둘 다 데이터베이스 컨텍스트 범위 안에 있다면, SHOW TABLES는t1테이블 중 하나만 표시해요.SCHEMA또는SCHEMA schema_name— 현재 사용 중인 스키마 또는 지정한 스키마의 레코드 반환.SCHEMA다음의schema_name은 데이터베이스가 사용 중이거나 완전 정규화된 이름(예:db.schema)을 지정하면 선택 사항이에요. 데이터베이스가 사용 중이 아니면SCHEMA지정은 출력에 영향을 주지 않아요.IN ...을 생략하면 범위는 세션에 현재 데이터베이스가 있는지에 따라 달라져요:- 현재 데이터베이스가 있으면
IN DATABASE를 지정한 것과 같은 효과 (데이터베이스에서 볼 권한이 있는 객체 반환). - 현재 데이터베이스가 없으면
IN ACCOUNT를 지정한 것과 같은 효과 (계정에서 볼 권한이 있는 객체 반환).
- 현재 데이터베이스가 있으면
-
STARTS WITH
<name_string>— 객체 이름의 시작 문자를 기준으로 출력을 필터링해요. 문자열은 작은따옴표로 묶어야 하며 대소문자를 구분해요. 기본값: 없음. -
LIMIT
<rows>— 반환되는 최대 행 수를 제한해요. 실제 반환 행 수는 제한보다 적을 수 있어요. 기본값: 없음. -
LIMIT
<rows>[ FROM<name_string>] — 최대 행 수를 제한하면서 결과의 "페이지네이션"을 가능하게 해요.FROM '<name_string>'하위 절은 결과의 "커서" 역할을 해요. 객체 이름이 지정 문자열과 일치하는 첫 행 다음부터 지정한 개수의 행을 가져와요.- 문자열은 작은따옴표로 묶어야 하며 대소문자를 구분해요.
- 문자열이 반드시 전체 객체 이름을 포함할 필요는 없어요. 부분 이름도 지원돼요.
- 기본값: 없음.
참고:
STARTS WITH와FROM절을 모두 지원하는 SHOW 명령에서는 두 절을 같은 문장에서 결합할 수 있어요. 다만 두 조건이 모두 충족되어야 하며, 그렇지 않으면 서로 상쇄되어 결과가 반환되지 않아요. 또한 객체는 이름 기준 사전 순으로 반환되므로STARTS WITH 'A' LIMIT ... FROM 'B'는 결과가 없고,STARTS WITH 'B' LIMIT ... FROM 'A'는 결과를 반환해요.
출력 (Output)
명령 출력은 객체의 속성과 메타데이터를 설명하는 다음 컬럼을 포함해요:
- created_on — 연락처가 생성된 날짜·시간.
- name — 연락처 이름.
- database_name — 연락처가 있는 데이터베이스 이름.
- schema_name — 연락처가 있는 스키마 이름.
- owner — 연락처에 대한 OWNERSHIP 권한을 가진 역할.
- comment — 연락처를 설명하는 사용자 지정 문자열(지정한 경우).
- owner_role_type — 연락처에 대해 OWNERSHIP 권한을 가진 역할 유형.
ROLE,DATABASE_ROLE, 또는 (Snowflake Native App이 객체를 소유한 경우)APPLICATION. - email_distribution_list — 연락처와 연결된 이메일 주소.
- url — 연락처와 연결된 URL.
- entries_in_users — 사용자 이름이 연락처와 연결된 경우 연결된 사용자 수.
- users — 연락처와 연결된 사용자 배열.
접근 제어 요구 사항 (Access control requirements)
SHOW CONTACTS를 실행하려면 연락처가 있는 스키마에 대한 USAGE 권한이 필요해요.
사용 참고 사항 (Usage notes)
- 명령은 역할의 접근 권한에 따라 지정 객체 유형에 대해 최대 1만 개의 레코드를 반환해요. 1만 개가 넘는 결과는 필터를 적용해도 반환되지 않아요. 1만 개가 넘는 결과를 보려면 Snowflake Information Schema에서 해당 뷰(존재한다면)를 조회해요.
예제 (Examples)
mydb 데이터베이스의 PUBLIC 스키마에서 볼 권한이 있는 연락처를 나열하는 예시예요:
USE DATABASE mydb;
SHOW CONTACTS;
더 알아보기 (Learn more)
- CREATE CONTACT — 연락처 만들기
- ALTER CONTACT — 연락처 수정
- DROP CONTACT — 연락처 삭제