SHOW NOTEBOOKS
SHOW NOTEBOOKS
SHOW NOTEBOOKS 명령은 접근 권한(privilege)이 있는 노트북(notebook) 목록을 보여주는 명령이에요. 세션의 현재 데이터베이스·스키마, 지정한 데이터베이스·스키마, 또는 전체 계정의 노트북 객체를 나열할 수 있어요.
출처: 문서
본문
이 명령은 접근 권한이 있는 노트북을 나열해요. 세션의 현재 데이터베이스와 스키마, 지정한 데이터베이스·스키마, 또는 전체 계정의 객체를 나열할 수 있어요.
출력에는 각 객체의 메타데이터와 속성이 포함돼요. 객체는 데이터베이스, 스키마, 객체 이름 순서로 사전식(lexicographic) 정렬돼요. 이 정렬 순서는 결과를 필터링할 때 중요하니 주의하세요.
구문 (Syntax)
SHOW NOTEBOOKS [ 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 와일드카드 문자(%, _)를 지원해요.
예를 들어 다음 패턴들은 같은 결과를 반환해요:
... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
기본값: 값 없음(출력에 필터링이 적용되지 않음).
IN ...
선택 사항으로, 명령의 범위(scope)를 지정해요. 다음 중 하나를 지정할 수 있어요:
ACCOUNT— 전체 계정에 대한 레코드를 반환해요.DATABASE [ db_name ]— 현재 사용 중인 데이터베이스 또는 지정한 데이터베이스에 대한 레코드를 반환해요.db_name을DATABASE없이 지정하고 사용 중인 데이터베이스가 없다면, 이 키워드는 출력에 영향을 주지 않아요.
참고: 데이터베이스 맥락에서
db_name절 없이 SHOW 명령을 사용하면 예상보다 적은 결과가 나올 수 있어요.IN절을 사용하지 않으면 이름이 같은 객체는 한 번만 표시돼요.
SCHEMA [ schema_name ]— 현재 사용 중인 스키마 또는 지정한 스키마에 대한 레코드를 반환해요. 데이터베이스가 사용 중이거나 정규화된 스키마 이름(예:db.schema)을 지정하면schema_name은 선택 사항이에요.
SCHEMA를 생략하면 명령의 범위는 세션에 현재 사용 중인 데이터베이스가 있는지에 따라 달라져요:
- 데이터베이스가 사용 중이면, 데이터베이스에서 볼 권한이 있는 객체를 반환해요.
IN ACCOUNT을 지정한 것과 같은 효과예요. - 데이터베이스가 사용 중이 아니면, 계정에서 볼 권한이 있는 객체를 반환해요.
IN DATABASE를 지정한 것과 같은 효과예요.
STARTS WITH 'name_string'
선택 사항으로, 객체 이름의 시작 문자에 따라 출력을 필터링해요. 문자열은 단일 따옴표로 묶어야 하며 대소문자를 구분해요.
예를 들어 다음 문자열들은 서로 다른 결과를 반환해요:
... STARTS WITH 'B' ...
... STARTS WITH 'b' ...
기본값: 값 없음(출력에 필터링이 적용되지 않음).
LIMIT rows [ FROM 'name_string' ]
선택 사항으로, 반환되는 최대 행 수를 제한해요. 실제 반환되는 행 수는 지정한 제한보다 적을 수 있어요(예: 기존 객체 수가 제한보다 적은 경우).
기본값: 값 없음(출력에 제한이 적용되지 않음).
출력 (Output)
명령 출력에는 객체의 속성과 메타데이터를 설명하는 다음 컬럼이 포함돼요:
| 컬럼 | 설명 |
|---|---|
created_on |
노트북이 생성된 날짜와 시간이에요. |
name |
노트북 객체의 이름이에요. |
database_name |
노트북이 저장된 데이터베이스예요. |
schema_name |
노트북이 저장된 스키마예요. |
comment |
노트북 객체에 대한 주석(comment)이에요. |
owner |
노트북 객체를 소유한 역할(role)이에요. |
query_warehouse |
노트북에서 실행되는 쿼리가 수행되는 웨어하우스(warehouse)예요. |
url_id |
노트북 객체와 연결된 고유 ID예요. |
owner_role_type |
객체를 소유한 역할의 유형이에요. 예를 들어 ROLE이에요. Snowflake Native App이 객체를 소유하면 값은 APPLICATION이에요. 객체를 삭제하면 소유 역할이 없으므로 Snowflake는 NULL을 반환해요. |
code_warehouse |
노트북 커널이 실행되는 웨어하우스예요. |
접근 제어 요구 사항 (Access control requirements)
이 작업을 실행하는 역할은 최소한 다음 권한(privilege) 중 하나를 가져야 해요:
USAGE또는OWNERSHIP— 노트북(Notebook)
OWNERSHIP은 객체에 대한 특수 권한으로, 객체를 생성한 역할에 자동으로 부여되지만 소유 역할(또는 MANAGE GRANTS 권한이 있는 역할)이 GRANT OWNERSHIP 명령을 사용해 다른 역할로 이전할 수도 있어요.
사용 참고 사항 (Usage notes)
- 이 명령을 실행하는 데 실행 중인 웨어하우스가 필요하지 않아요.
- 이 명령은 현재 사용자의 현재 역할에 접근 권한(access privilege)이 하나 이상 부여된 객체만 반환해요.
MANAGE GRANTS접근 권한은 보유자가 계정의 모든 객체를 볼 수 있게 암시적으로 허용해요. 기본적으로 계정 관리자(ACCOUNTADMIN역할)와 보안 관리자(SECURITYADMIN역할)만MANAGE GRANTS권한을 가져요.- 이 명령의 출력을 후처리하려면 파이프 연산자(
|>)나RESULT_SCAN함수를 사용할 수 있어요. 두 구성 모두 출력을 쿼리할 수 있는 결과 집합으로 취급해요.
SHOW 명령 출력 컬럼을 참조할 때는 컬럼 이름에 큰따옴표로 묶은 식별자(double-quoted identifiers)를 사용하세요. 예를 들어 출력 컬럼 type을 선택하려면 SELECT "type"을 지정해요. SHOW 명령의 출력 컬럼 이름은 소문자이므로 큰따옴표 식별자를 사용해야 해요. 큰따옴표는 SELECT 목록이나 WHERE 절의 컬럼 이름이 스캔된 SHOW 명령 출력의 컬럼 이름과 일치하도록 보장해요.
- 이 명령은 지정된 객체 유형에 대해 최대 1만 개의 레코드를 반환해요(역할의 접근 권한에 따라 결정). 필터를 적용해도 1만 개 이상의 레코드는 반환되지 않아요.
1만 개 이상의 결과를 보려면 Snowflake Information Schema의 해당 뷰(존재하는 경우)를 조회하세요.
예시 (Examples)
현재 스키마에서 볼 권한이 있는 노트북을 나열해요:
SHOW NOTEBOOKS;
이름이 test로 시작하는 노트북을 나열해요:
SHOW NOTEBOOKS STARTS WITH 'test';