SHOW DATABASES
SHOW DATABASES
SHOW DATABASES 명령은 계정 전체에서 접근 권한(privilege)이 있는 데이터베이스 목록을 보여주는 명령이에요. Time Travel 보존 기간 안에 있어 취소(undrop)할 수 있는 삭제된 데이터베이스도 포함돼요.
출처: 문서
본문
이 명령은 계정 전체에서 접근 권한이 있는 데이터베이스를 나열해요. 출력은 데이터베이스 이름 기준 사전 순(lexicographic)으로 정렬된 데이터베이스 메타데이터와 속성을 반환해요. 제공된 필터로 결과를 필터링하려면 이 정렬 순서를 유념해야 해요.
관련 명령: CREATE DATABASE, ALTER DATABASE, DESCRIBE DATABASE, DROP DATABASE, UNDROP DATABASE, DATABASES 뷰 (Information Schema).
구문 (Syntax)
SHOW [ TERSE ] DATABASES [ HISTORY ] [ LIKE '<pattern>' ]
[ STARTS WITH '<name_string>' ]
[ LIMIT <rows> [ FROM '<name_string>' ] ]
[ WITH PRIVILEGES <object_privilege> [ , <object_privilege> [ , ... ] ] ]
파라미터 (Parameters)
-
TERSE — 다음 컬럼만 포함하는 출력을 선택적으로 반환해요:
created_on,name,kind,database_name.schema_name,kind,database_name은 데이터베이스에는 적용되지 않는 컬럼이라 항상NULL로 표시돼요. 기본값: 없음 (모든 컬럼 포함). -
HISTORY — 아직 제거(purge)되지 않은(즉, 각자의 Time Travel 보존 기간 안에 있는) 삭제된 데이터베이스를 선택적으로 포함해요. 삭제된 데이터베이스의 여러 버전이 존재하면 각 버전마다 행을 표시해요. 출력에는 추가
dropped_on컬럼도 포함되는데, 삭제된 데이터베이스에는 날짜·타임스탬프를, 활성 데이터베이스에는NULL을 표시해요. 기본값: 없음 (삭제된 데이터베이스 제외). -
LIKE
<pattern>— 명령 출력을 객체 이름으로 필터링해요. 대소문자를 구분하지 않는 패턴 매칭이며 SQL 와일드카드 문자(%와_)를 지원해요. 기본값: 없음. -
STARTS WITH
<name_string>— 객체 이름의 시작 문자를 기준으로 출력을 필터링해요. 문자열은 작은따옴표로 묶어야 하며 대소문자를 구분해요. 기본값: 없음. -
LIMIT
<rows>[ FROM<name_string>] — 최대 행 수를 제한하면서 결과의 "페이지네이션"을 가능하게 해요.FROM '<name_string>'하위 절은 결과의 "커서" 역할을 해요. 기본값: 없음.참고:
STARTS WITH와FROM절을 모두 지원하는 SHOW 명령에서는 두 절을 같은 문장에서 결합할 수 있어요. 다만 두 조건이 모두 충족되어야 하며, 그렇지 않으면 서로 상쇄되어 결과가 반환되지 않아요. 객체는 이름 기준 사전 순으로 반환됩니다. -
WITH PRIVILEGES
<object_privilege>[ , ... ] — 현재 사용자의 활성 역할이 객체에 대해 지정한 모든 권한을 부여받은 객체로만 행을 제한해요. 권한 목록에CREATE <object>권한이 포함되면, 보조 역할(secondary role)에 권한이 부여된 객체는 제외돼요. 이는 객체를 만드는 권한은 기본 역할(primary role)만 가지기 때문이에요.
접근 제어 요구 사항 (Access control requirements)
- object_visibility — 프리뷰 기능(오픈)으로 모든 계정에서 사용 가능. 이 속성은 계정 내 객체의 발견 가능성(discoverability)을 제어하여, 명시적 접근 권한이 없는 사용자도 객체를 찾고 접근을 요청할 수 있게 해요.
사용 참고 사항 (Usage notes)
OBJECT_VISIBILITY와HISTORY파라미터는 상호 배타적이에요. 같은 문장에서 둘 다 사용할 수 없어요.- 개인 데이터베이스(personal database)의 경우
resharing_settings컬럼 값이PERSONAL DATABASE예요. - 카탈로그 연결 데이터베이스(catalog-linked database)의 경우
resharing_settings컬럼 값이CATALOG-LINKED DATABASE예요. resharing_settings컬럼은 가져온(imported) 데이터베이스의 재공유(reshare) 구성을 설명하는 OBJECT를 반환해요.kind가IMPORTED DATABASE인 가져온 데이터베이스에만 채워지고, 로컬 데이터베이스에는NULL이에요. 객체에는enabled필드(데이터베이스를 재공유할 수 있으면true)와only_within_organization필드(조직 내 계정으로만 제한되면true)가 포함돼요.- 실행에 실행 중인 웨어하우스를 요구하지 않아요.
- 현재 역할에 하나 이상의 접근 권한이 부여된 객체만 반환해요.
MANAGE GRANTS권한은 보유자가 계정의 모든 객체를 볼 수 있게 해줘요. 기본적으로 ACCOUNTADMIN과 SECURITYADMIN 역할만 이 권한을 가져요.- 출력을 후처리하려면 파이프 연산자(
|>) 또는RESULT_SCAN함수를 사용할 수 있어요. 출력 컬럼을 참조할 때는 컬럼 이름을 큰따옴표로 감싸서 사용해요. LIMIT rows의 값은10000을 초과할 수 없어요.LIMIT rows를 생략하면 결과 집합이 1만 행보다 크면 명령이 오류를 반환해요. 1만 개가 넘는 결과를 보려면LIMIT rows를 포함하거나 Snowflake Information Schema의 해당 뷰를 조회해요.
예제 (Examples)
계정에서 볼 권한이 있는 모든 데이터베이스를 표시해요:
SHOW DATABASES;
삭제된 데이터베이스를 포함한 모든 데이터베이스를 표시해요:
SHOW DATABASES HISTORY;
USAGE와 MODIFY 권한을 부여받은 모든 데이터베이스를 표시해요:
SHOW DATABASES WITH PRIVILEGES USAGE, MODIFY;
더 알아보기 (Learn more)
- CREATE DATABASE — 데이터베이스 만들기
- ALTER DATABASE — 데이터베이스 수정
- DROP DATABASE — 데이터베이스 삭제
- UNDROP DATABASE — 삭제된 데이터베이스 복원