GoogleSQL 언어 데이터베이스의 정보 스키마

정보 스키마는 모든 Spanner 데이터베이스에 공통된 기본 제공 스키마입니다. INFORMATION_SCHEMA의 테이블에 대해 SQL 쿼리를 실행하여 데이터베이스의 스키마 메타데이터를 가져올 수 있습니다.

예를 들어 다음 쿼리는 데이터베이스의 모든 사용자 정의 테이블 이름을 가져옵니다.

  SELECT
    table_name
  FROM
    information_schema.tables
  WHERE
    table_schema = ''

세분화된 액세스 제어 사용자에게 데이터베이스 역할에 따라 일부 INFORMATION_SCHEMA 테이블에 대한 필터링된 결과가 표시됩니다. 자세한 내용은 세분화된 액세스 제어 정보를 참조하세요.

사용

INFORMATION_SCHEMA 테이블은 다음과 같은 SQL 인터페이스를 통해서만 사용할 수 있습니다.

  • executeQuery API
  • gcloud spanner databases execute-sql 명령어
  • Google Cloud 콘솔의 데이터베이스 Spanner 스튜디오 페이지

다른 단일 읽기 메서드는 INFORMATION_SCHEMA를 지원하지 않습니다.

일부 추가적인 INFORMATION_SCHEMA 사용법 참고사항은 다음과 같습니다.

information_schema 테이블에서 행 필터링

데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할(또는 해당 역할의 구성원)에 대한 액세스 권한이 부여된 주 구성원은 모든 information_schema 테이블의 모든 행을 볼 수 있습니다. 기타 주 구성원은 일부 테이블의 경우 현재 데이터베이스 역할에 따라 행이 필터링됩니다. 다음 섹션의 테이블 및 뷰 설명은 각 테이블과 뷰에 행 필터링이 적용되는 방식을 나타냅니다.

INFORMATION_SCHEMA의 테이블

다음 섹션에서는 GoogleSQL 언어 데이터베이스에 대한 INFORMATION_SCHEMA의 테이블을 설명합니다.

SCHEMATA

INFORMATION_SCHEMA.SCHEMATA 테이블에는 데이터베이스의 스키마가 나열됩니다. 여기에는 정의한 테이블을 포함하는 정보 스키마와 이름이 지정된 스키마가 포함됩니다.

열 이름 유형 설명
CATALOG_NAME STRING 카탈로그의 이름입니다. SQL 표준 정보 스키마 테이블과의 호환성을 위해 있는 열입니다. 이 열은 항상 빈 문자열입니다.
SCHEMA_NAME STRING 스키마의 이름입니다. 이름이 지정된 스키마의 이름이거나 기본 스키마의 경우 ``입니다.
PROTO_BUNDLE STRING 데이터베이스에 proto 번들 문이 포함되어 있는 경우 이 열은 스키마에 사용된 proto 번들에 대한 정보를 제공합니다. proto 번들이 데이터베이스에 없는 경우 이 열은 NULL입니다.

DATABASE_OPTIONS

이 테이블에는 데이터베이스에 설정된 옵션이 나열됩니다.

열 이름 유형 설명
CATALOG_NAME STRING 카탈로그의 이름입니다. 항상 빈 문자열입니다.
SCHEMA_NAME STRING 스키마의 이름입니다. 이름이 지정되지 않은 경우 빈 문자열입니다.
OPTION_NAME STRING 데이터베이스 옵션의 이름입니다.
OPTION_TYPE STRING 데이터베이스 옵션의 데이터 유형입니다.
OPTION_VALUE STRING 데이터베이스 옵션 값입니다.

PLACEMENTS

이 테이블에는 데이터베이스의 배치가 나열됩니다.

열 이름 유형 설명
PLACEMENT_NAME STRING 배치의 이름입니다.
IS_DEFAULT BOOL 배치가 기본 배치인지 여부를 나타내는 불리언입니다.

PLACEMENT_OPTIONS

이 테이블에는 각 배치에 대한 CREATE PLACEMENT 문의 OPTIONS 절에서 배치에 설정된 옵션이 나와 있습니다.

OPTION_NAME에 유효한 값은 다음과 같습니다.

  • instance_partition
  • default_leader
열 이름 유형 설명
PLACEMENT_NAME STRING 배치의 이름입니다.
OPTION_NAME STRING 배치 옵션의 이름입니다.
OPTION_TYPE STRING 배치 옵션의 데이터 유형입니다. 두 옵션 모두 STRING(MAX)입니다.
OPTION_VALUE STRING 배치 옵션의 값입니다. instance_partition의 경우 인스턴스 파티션의 이름입니다. default_leader의 경우 기본 리더 리전의 이름입니다.

TABLES

이 행 필터링 테이블은 데이터베이스의 테이블 및 뷰를 나열합니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 다음 요구사항 중 하나를 충족하는 테이블만 볼 수 있습니다.

  • 테이블에 대한 SELECT, INSERT, UPDATE 또는 DELETE 세분화된 액세스 제어 권한은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public에 부여됩니다.
  • SELECT, INSERT 또는 UPDATE 권한은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public에 대한 테이블 열에 부여됩니다.
열 이름 유형 설명
TABLE_CATALOG STRING 사용되지 않음. 항상 빈 문자열입니다.
TABLE_SCHEMA STRING 사용되지 않음. 항상 빈 문자열입니다.
TABLE_NAME STRING 테이블, 뷰 또는 동의어의 이름입니다.
TABLE_TYPE STRING 테이블의 유형입니다. 테이블의 경우 값이 BASE TABLE이고, 뷰의 경우 값이 VIEW이고, 동의어의 경우 값이 SYNONYM입니다.
PARENT_TABLE_NAME STRING 이 테이블이 인터리브 처리된 경우 상위 테이블의 이름이고 그렇지 않은 경우 NULL입니다.
ON_DELETE_ACTION STRING 인터리브 처리된 테이블의 경우 CASCADE 또는 NO ACTION으로 설정되고 그렇지 않으면 NULL로 설정됩니다. 자세한 내용은 TABLE 문을 참조하세요.
SPANNER_STATE STRING 대량 작업이 포함된 경우 테이블은 만들기 중 여러 상태를 통과할 수 있습니다. 예를 들어 색인 백필이 필요한 외래 키로 테이블이 생성될 때 가능한 상태는 다음과 같습니다.
  • ADDING_FOREIGN_KEY: 테이블의 외래 키를 추가합니다.
  • WAITING_FOR_COMMIT: 스키마 변경을 완료합니다.
  • COMMITTED: 테이블을 만들기 위한 스키마 변경이 커밋되었습니다. 변경 사항이 커밋될 때까지 테이블에 쓸 수 없습니다.
INTERLEAVE_TYPE STRING 이 테이블과 인터리브 처리된 테이블 간의 상위-하위 관계가 있는지 여부를 나타내는 표현식 텍스트입니다. 가능한 값은 다음과 같습니다.
  • IN: 테이블에 상위-하위 관계가 없습니다. 이 테이블의 행은 상위 테이블 행과 관계없이 존재할 수 있습니다.
  • IN PARENT: 테이블에 상위-하위 관계가 있습니다. 이 테이블의 행에는 상위 테이블 행이 있어야 합니다.
  • 빈 문자열은 이 테이블에 인터리브 처리된 관계가 없음을 나타냅니다.
ROW_DELETION_POLICY_EXPRESSION STRING 테이블의 행 삭제 정책을 정의하는 표현식 텍스트입니다. 예를 들면 OLDER_THAN(CreatedAt, INTERVAL 1 DAY) 또는 OLDER_THAN(ExpiredDate, INTERVAL 0 DAY)입니다.

COLUMNS

이 행 필터링 테이블은 테이블의 열을 나열합니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 다음 요구사항 중 하나를 충족하는 테이블만 볼 수 있습니다.

  • SELECT, INSERT 또는 UPDATE 세분화된 액세스 제어 권한은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public에 대한 열에 직접 부여됩니다.
  • SELECT, INSERT 또는 UPDATE 세분화된 액세스 제어 권한은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public에 대한 열이 포함된 테이블에 부여됩니다.
열 이름 유형 설명
TABLE_CATALOG STRING 사용되지 않음. 항상 빈 문자열입니다.
TABLE_SCHEMA STRING 사용되지 않음. 항상 빈 문자열입니다.
TABLE_NAME STRING 테이블의 이름입니다.
COLUMN_NAME STRING 열의 이름입니다.
ORDINAL_POSITION INT64 테이블에서 열의 서수 위치이며 값 1부터 시작합니다.
COLUMN_DEFAULT STRING

열의 기본값에 대한 SQL 표현식의 문자열 표현입니다. 열에 기본값이 없으면 NULL입니다.

참고: 2022년 3월 이전에는 COLUMN_DEFAULTBYTES 유형이 사용되었습니다.

DATA_TYPE STRING SQL 표준을 충족하기 위해 포함되었습니다. 항상 NULL입니다. SPANNER_TYPE 열을 참조합니다.
IS_NULLABLE STRING 이 열에서 null을 사용할 수 있는지를 나타내는 문자열입니다. SQL 표준에 따라 이 문자열은 불리언 값이 아닌 YES 또는 NO입니다.
SPANNER_TYPE STRING 열의 데이터 유형입니다.
IS_GENERATED STRING 열이 생성되는지를 나타내는 문자열입니다. 문자열은 생성 열의 경우 ALWAYS이거나 생성되지 않은 열의 경우 NEVER입니다.
GENERATION_EXPRESSION STRING 생성 열의 SQL 표현식을 나타내는 문자열입니다. 열이 생성 열이 아닌 경우 NULL입니다.
IS_STORED STRING 생성 열이 저장되는지를 나타내는 문자열입니다. 문자열은 생성 열의 경우 항상 YES이고 생성되지 않은 열의 경우 NULL입니다.
SPANNER_STATE STRING 열의 현재 상태입니다. 기존 테이블에 추가된 새롭게 저장되고 생성된 열은 완전히 사용되기 전에 사용자가 관찰 가능한 여러 상태를 거쳐갈 수 있습니다. 가능한 값은 다음과 같습니다.
  • WRITE_ONLY: 열이 백필됩니다. 읽기가 허용되지 않습니다.
  • COMMITTED: 열을 완전히 사용할 수 있습니다.

COLUMN_PRIVILEGES

이 행 필터링 테이블은 열 수준에서 public을 포함하여 데이터베이스 역할에 부여된 모든 권한을 나열합니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 다음 요구사항 중 하나를 충족하는 열의 권한만 볼 수 있습니다.

  • SELECT, INSERT 또는 UPDATE 세분화된 액세스 제어 권한은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public에 대한 열에 직접 부여됩니다.
  • SELECT, INSERT 또는 UPDATE 세분화된 액세스 제어 권한은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public에 대한 열이 포함된 테이블에 부여됩니다.
열 이름 유형 설명
TABLE_CATALOG STRING 사용되지 않음. 항상 빈 문자열입니다.
TABLE_SCHEMA STRING 사용되지 않음. 항상 빈 문자열입니다.
TABLE_NAME STRING 권한이 있는 열이 포함된 테이블의 이름입니다.
COLUMN_NAME STRING 권한이 있는 열의 이름입니다.
PRIVILEGE_TYPE STRING SELECT, INSERT, UPDATE
GRANTEE STRING 이 권한이 부여된 데이터베이스 역할의 이름입니다.

TABLE_PRIVILEGES

이 행 필터링 테이블에는 테이블 수준에서 public을 포함하여 데이터베이스 역할에 부여된 모든 권한이 나열됩니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 SELECT, INSERT, UPDATE, 또는 DELETE 세분화된 액세스 제어 권한이 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public으로 부여된 테이블에 대한 권한을 볼 수 있습니다.

열 이름 유형 설명
TABLE_CATALOG STRING 사용되지 않음. 항상 빈 문자열입니다.
TABLE_SCHEMA STRING 사용되지 않음. 항상 빈 문자열입니다.
TABLE_NAME STRING 세분화된 액세스 제어 권한이 부여되는 테이블의 이름입니다.
PRIVILEGE_TYPE STRING SELECT, INSERT, UPDATEDELETE
GRANTEE STRING 이 권한이 부여된 데이터베이스 역할의 이름입니다.

TABLE_CONSTRAINTS

이 테이블에는 데이터베이스의 테이블에 대해 정의된 각 제약조건에 대한 행 하나가 포함됩니다.

열 이름 유형 설명
CONSTRAINT_CATALOG STRING 항상 빈 문자열입니다.
CONSTRAINT_SCHEMA STRING 제약조건 스키마의 이름입니다. 이름이 지정되지 않은 경우 빈 문자열입니다.
CONSTRAINT_NAME STRING 제약조건의 이름입니다.
TABLE_CATALOG STRING 제한된 테이블의 카탈로그 이름입니다. 항상 빈 문자열입니다.
TABLE_SCHEMA STRING 제한된 테이블의 스키마 이름입니다. 이름이 지정되지 않은 경우 빈 문자열입니다.
TABLE_NAME STRING 제한된 테이블의 이름입니다.
CONSTRAINT_TYPE STRING 제약조건의 유형입니다. 가능한 값은 다음과 같습니다.
  • PRIMARY KEY
  • FOREIGN KEY
  • PLACEMENT KEY
  • CHECK
  • UNIQUE
IS_DEFERRABLE STRING 항상 NO입니다.
INITIALLY_DEFERRED STRING 항상 NO입니다.
ENFORCED STRING 항상 YES입니다.

CONSTRAINT_TABLE_USAGE

이 테이블에는 제약 조건을 정의하거나 제약조건에 사용하는 테이블이 나와 있습니다. PRIMARY KEYUNIQUE 제약조건을 정의하는 테이블을 포함합니다. FOREIGN KEY 정의의 참조되는 테이블도 포함합니다.

열 이름 유형 설명
TABLE_CATALOG STRING 제한된 테이블의 카탈로그 이름입니다. 항상 빈 문자열입니다.
TABLE_SCHEMA STRING 제한된 테이블의 스키마 이름입니다. 이름이 지정되지 않은 경우 빈 문자열입니다.
TABLE_NAME STRING 제한된 테이블의 이름입니다.
CONSTRAINT_CATALOG STRING 제약조건 카탈로그의 이름입니다. 항상 빈 문자열입니다.
CONSTRAINT_SCHEMA STRING 제약조건 스키마의 이름입니다. 이름이 지정되지 않은 경우 빈 문자열입니다.
CONSTRAINT_NAME STRING 제약조건의 이름입니다.

REFERENTIAL_CONSTRAINTS

이 테이블에는 각 FOREIGN KEY 제약조건에 대해 하나의 행이 포함됩니다.

열 이름 유형 설명
CONSTRAINT_CATALOG STRING FOREIGN KEY 카탈로그의 이름입니다. 항상 빈 문자열입니다.
CONSTRAINT_SCHEMA STRING FOREIGN KEY 스키마의 이름입니다. 이름이 지정되지 않은 경우 빈 문자열입니다.
CONSTRAINT_NAME STRING 외래 키의 이름입니다.
UNIQUE_CONSTRAINT_CATALOG STRING FOREIGN KEY 참조의 PRIMARY KEY 또는 UNIQUE 제약조건의 카탈로그 이름입니다. 항상 빈 문자열입니다.
UNIQUE_CONSTRAINT_SCHEMA STRING 기본 키 또는 고유 제약조건 외래 키 참조의 스키마 이름입니다. 이름이 지정되지 않은 경우 빈 문자열입니다.
UNIQUE_CONSTRAINT_NAME STRING 기본 키 또는 고유 제약조건 외래 키 참조의 이름입니다.
MATCH_OPTION STRING 항상 SIMPLE입니다.
UPDATE_RULE STRING 항상 NO ACTION입니다.
DELETE_RULE STRING CASCADE 또는 NO ACTION.
SPANNER_STATE STRING 외래 키의 현재 상태입니다. 외래 키의 지원 색인이 생성되고 백필될 때까지 Spanner에서 제약조건 적용이 시작되지 않습니다. 색인이 준비되면 Spanner가 기존 데이터를 검사하는 동안 새 트랜잭션에 대해 제약조건 적용을 시작합니다. 가능한 값과 나타내는 상태는 다음과 같습니다.
  • BACKFILLING_INDEXES: 색인이 백필되고 있습니다.
  • VALIDATING_DATA: 기존 데이터와 새 쓰기를 검사 중입니다.
  • WAITING_FOR_COMMIT: 외래 키 대량 작업이 성공적으로 완료되었거나 아무것도 필요하지 않습니다. 그렇지만 외래 키가 아직 대기 중입니다.
  • COMMITTED: 스키마 변경사항이 커밋되었습니다.

CHECK_CONSTRAINTS

information_schema.CHECK_CONSTRAINTS 테이블에는 CHECK 또는 NOT NULL 키워드로 정의된 각 CHECK 제약조건에 대한 행 하나가 포함됩니다.

열 이름 유형 설명
CONSTRAINT_CATALOG STRING 제약조건 카탈로그의 이름입니다. 이 열은 null이 아니지만 항상 빈 문자열입니다.
CONSTRAINT_SCHEMA STRING 제약조건 스키마의 이름입니다. 이름이 지정되지 않은 경우 빈 문자열입니다.
CONSTRAINT_NAME STRING 제약조건의 이름입니다. 이 열은 null이 아닙니다. 스키마 정의에 명시적으로 지정되지 않으면 시스템 정의 이름이 할당됩니다.
CHECK_CLAUSE STRING CHECK 제약조건의 표현식입니다. 이 열은 null이 아닙니다.
SPANNER_STATE STRING CHECK 제약조건의 현재 상태입니다. 이 열은 null이 아닙니다. 가능한 상태는 다음과 같습니다.
  • VALIDATING: Spanner에서 기존 데이터의 유효성을 검사합니다.
  • COMMITTED: 이 제약조건에 활성 스키마 변경이 없습니다.

KEY_COLUMN_USAGE

이 행 필터링 테이블에는 PRIMARY KEY, FOREIGN KEY, UNIQUE 제약조건에 따라 키로 제한된 TABLE_CONSTRAINTS에서 테이블의 각 열에 대한 행 하나가 포함됩니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 다음 기준을 충족하는 열만 볼 수 있습니다.

  • SELECT, INSERT 또는 UPDATE 세분화된 액세스 제어 권한은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public에 대한 열에 직접 부여됩니다.
  • SELECT, INSERT 또는 UPDATE 세분화된 액세스 제어 권한은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public에 대한 열이 포함된 테이블에 부여됩니다.
열 이름 유형 설명
CONSTRAINT_CATALOG STRING 제약조건 카탈로그의 이름입니다. 항상 빈 문자열입니다.
CONSTRAINT_SCHEMA STRING 제약조건 스키마의 이름입니다. 이 열은 null이 아닙니다. 이름이 지정되지 않은 경우 빈 문자열입니다.
CONSTRAINT_NAME STRING 제약조건의 이름입니다.
TABLE_CATALOG STRING 제한된 열의 카탈로그 이름입니다. 항상 빈 문자열입니다.
TABLE_SCHEMA STRING 제한된 열의 스키마 이름입니다. 이 열은 null이 아닙니다. 이름이 지정되지 않은 경우 빈 문자열입니다.
TABLE_NAME STRING 제한된 열의 테이블 이름입니다.
COLUMN_NAME STRING 열의 이름입니다.
ORDINAL_POSITION INT64 1 값으로 시작하는 제약조건 키 내 열의 서수 위치입니다.
POSITION_IN_UNIQUE_CONSTRAINT INT64 FOREIGN KEYs에 대해 1 값으로 시작하는 고유 제약조건 내 열의 서수 위치입니다. 다른 제약조건 유형의 경우 이 열은 null입니다.

CONSTRAINT_COLUMN_USAGE

이 테이블에는 제약조건에 사용되는 각 열에 대한 행 하나가 포함됩니다. FOREIGN KEY 제약조건의 참조되는 열 외에도 PRIMARY KEYUNIQUE 열이 포함됩니다.

열 이름 유형 설명
TABLE_CATALOG STRING 열 테이블의 카탈로그 이름입니다. 항상 빈 문자열입니다.
TABLE_SCHEMA STRING 열 테이블의 스키마 이름입니다. 이 열은 null이 아닙니다. 이름이 지정되지 않은 경우 빈 문자열입니다.
TABLE_NAME STRING 열의 테이블 이름입니다.
COLUMN_NAME STRING 제약조건에 사용되는 열의 이름입니다.
CONSTRAINT_CATALOG STRING 제약조건 카탈로그의 이름입니다. 항상 빈 문자열입니다.
CONSTRAINT_SCHEMA STRING 제약조건 스키마의 이름입니다. 이름이 지정되지 않은 경우 빈 문자열입니다.
CONSTRAINT_NAME STRING 제약조건의 이름입니다.

TABLE_SYNONYMS

이 테이블에는 테이블의 동의어 정보가 나열됩니다.

열 이름 유형 설명
TABLE_CATALOG STRING 사용되지 않음. 항상 빈 문자열입니다.
TABLE_SCHEMA STRING 사용되지 않음. 항상 빈 문자열입니다.
TABLE_NAME STRING 테이블의 이름입니다.
SYNONYM_CATALOG STRING 동의어의 카탈로그 이름입니다.
SYNONYM_SCHEMA STRING 동의어의 스키마 이름입니다.
SYNONYM_TABLE_NAME STRING 동의어의 테이블 이름입니다.

INDEXES

이 행 필터링 테이블은 데이터베이스의 색인을 나열합니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 다음 요구사항 중 하나를 충족하는 색인만 볼 수 있습니다.

  • SELECT, INSERT 또는 UPDATE 세분화된 액세스 제어 권한은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public에 대한 색인의 모든 열에 대한 열 수준에서 부여됩니다.
  • SELECT, INSERT, UPDATE 또는 DELETE 세분화된 액세스 제어 권한은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public에 대한 색인이 포함된 테이블에 부여됩니다.
열 이름 유형 설명
TABLE_CATALOG STRING 카탈로그의 이름입니다. 항상 빈 문자열입니다.
TABLE_SCHEMA STRING 스키마의 이름입니다. 이름이 지정되지 않은 경우 빈 문자열입니다.
TABLE_NAME STRING 테이블의 이름입니다.
INDEX_NAME STRING 색인의 이름입니다. PRIMARY KEY 스펙이 있는 테이블은 이름 PRIMARY_KEY으로 생성 된 허위 색인 항목이 있습니다. 이것은 기본 키의 필드를 결정할 수 있습니다.
INDEX_TYPE STRING 색인의 유형입니다. 유형은 INDEX 또는 PRIMARY_KEY입니다.
PARENT_TABLE_NAME STRING 보조 색인 만들기에 설명된 대로 보조 색인은 상위 테이블에서 인터리브 처리될 수 있습니다. 이 열에는 상위 테이블의 이름이 있거나 색인이 인터리브 처리되지 않은 경우에는 빈 문자열이 포함됩니다.
IS_UNIQUE BOOL 색인 키가 고유해야 하는지 여부입니다.
IS_NULL_FILTERED BOOL 색인에 NULL 값이 있는 항목을 포함하는지 여부입니다.
INDEX_STATE STRING 색인의 현재 상태입니다. 가능한 값과 나타내는 상태는 다음과 같습니다.
  • PREPARE: 새 색인의 빈 테이블 만들기
  • WRITE_ONLY: 새 색인의 데이터 백필
  • WRITE_ONLY_CLEANUP: 새 색인 삭제
  • WRITE_ONLY_VALIDATE_UNIQUE: 새 색인에서 데이터 고유성 확인
  • READ_WRITE: 정상 색인 작업
SPANNER_IS_MANAGED BOOL Spanner에서 색인을 관리하는 경우는 TRUE이고 그 외의 경우는 FALSE입니다. Spanner에서 외래 키의 보조 지원 색인을 관리합니다.

INDEX_COLUMNS

이 행 필터링 테이블은 색인의 열을 나열합니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 다음 요구사항 중 하나를 충족하는 색인만 볼 수 있습니다.

  • SELECT, INSERT 또는 UPDATE 세분화된 액세스 제어 권한은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public에 대한 색인의 모든 열에 대한 열 수준에서 부여됩니다.
  • SELECT, INSERT 또는 UPDATE 세분화된 액세스 제어 권한은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public에 대한 색인이 포함된 테이블에 부여됩니다.
열 이름 유형 설명
TABLE_CATALOG STRING 카탈로그의 이름입니다. 항상 빈 문자열입니다.
TABLE_SCHEMA STRING 스키마의 이름입니다. 이름이 지정되지 않은 경우 빈 문자열입니다.
TABLE_NAME STRING 테이블의 이름입니다.
INDEX_NAME STRING 색인의 이름입니다.
COLUMN_NAME STRING 열의 이름입니다.
ORDINAL_POSITION INT64 색인에서 열의 서수 위치이며 값 1부터 시작합니다. 이 값은 키가 아닌 열(예: 색인의 STORING에 지정된 열)의 NULL입니다.
COLUMN_ORDERING STRING 열의 순서입니다. 값은 키 열의 경우 ASC 또는 DESC이고 키 열이 아닌(예: 색인의 STORING 절에 지정된 열) 경우 NULL입니다.
IS_NULLABLE STRING 이 열에서 null을 사용할 수 있는지를 나타내는 문자열입니다. SQL 표준에 따라 이 문자열은 불리언 값이 아닌 YES 또는 NO입니다.
SPANNER_TYPE STRING 열의 데이터 유형입니다.

COLUMN_OPTIONS

이 행 필터링 테이블은 테이블의 열 옵션 목록이 나열됩니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 다음 요구사항 중 하나를 충족하는 열의 옵션만 볼 수 있습니다.

  • SELECT, INSERT 또는 UPDATE 세분화된 액세스 제어 권한은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public에 대한 열에 직접 부여됩니다.
  • SELECT, INSERT 또는 UPDATE 세분화된 액세스 제어 권한은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public에 대한 열이 포함된 테이블에 부여됩니다.
열 이름 유형 설명
TABLE_CATALOG STRING 카탈로그의 이름입니다. 항상 빈 문자열입니다.
TABLE_SCHEMA STRING 스키마의 이름입니다. 이 이름은 기본 스키마의 경우 비어 있고 다른(예: INFORMATION_SCHEMA 자체) 스키마의 경우 비어 있지 않습니다. 이 열은 null이 아닙니다.
TABLE_NAME STRING 테이블의 이름입니다.
COLUMN_NAME STRING 열의 이름입니다.
OPTION_NAME STRING 옵션을 고유하게 식별하는 SQL 식별자입니다. 이 식별자는 DDL의 OPTIONS 절 키입니다.
OPTION_TYPE STRING 이 옵션 값의 유형인 데이터 유형 이름입니다.
OPTION_VALUE STRING 이 옵션의 값을 설명하는 SQL 리터럴입니다. 이 열의 값은 쿼리의 일부로 파싱할 수 있어야 합니다. 값 파싱의 결과 표현식은 OPTION_TYPE으로 캐스팅 가능해야 합니다. 이 열은 null이 아닙니다.

SEQUENCES

이 테이블에는 시퀀스 메타데이터가 나와 있습니다. SEQUENCES는 세분화된 액세스 권한이 있는 사용자가 쿼리하는 경우 세분화된 액세스 권한을 기반으로 행이 필터링됩니다.

열 이름 유형 설명
CATALOG STRING 시퀀스가 포함된 카탈로그의 이름입니다.
SCHEMA STRING 시퀀스가 포함된 스키마의 이름입니다.
NAME STRING 시퀀스의 이름입니다.
DATA_TYPE STRING 시퀀스 값의 유형입니다. INT64 데이터 유형을 사용합니다.

SEQUENCE_OPTIONS

이 테이블에는 시퀀스의 구성 옵션이 포함됩니다. SEQUENCE_OPTIONS는 세분화된 액세스 권한이 있는 사용자가 쿼리하는 경우 세분화된 액세스 권한을 기반으로 행이 필터링됩니다.

열 이름 유형 설명
CATALOG STRING 시퀀스가 포함된 카탈로그의 이름입니다.
SCHEMA STRING 시퀀스가 포함된 스키마의 이름입니다.
NAME STRING 시퀀스의 이름입니다.
OPTION_NAME STRING 시퀀스 옵션의 이름입니다.
OPTION_TYPE STRING 이 옵션 값의 유형인 데이터 유형 이름입니다.
OPTION_VALUE STRING 시퀀스 옵션 값입니다. 값 파싱의 결과 표현식은 OPTION_TYPE으로 변환을 허용해야 합니다.

SPANNER_STATISTICS

이 테이블에는 사용 가능한 쿼리 최적화 도구 통계 패키지가 나열되어 있습니다.

열 이름 유형 설명
CATALOG_NAME STRING 카탈로그의 이름입니다. 항상 빈 문자열입니다.
SCHEMA_NAME STRING 스키마의 이름입니다. 이 이름은 기본 스키마의 경우 비어 있고 다른(예: INFORMATION_SCHEMA 자체) 스키마의 경우 비어 있지 않습니다. 이 열은 null이 아닙니다.
PACKAGE_NAME STRING 통계 패키지의 이름입니다.
ALLOW_GC BOOL 통계 패키지가 가비지 컬렉션에서 제외되는 경우는 FALSE이고 그렇지 않으면 TRUE입니다.
힌트에서 또는 클라이언트 API를 통해 통계 패키지를 참조하려면 이 속성을 FALSE로 설정해야 합니다.

VIEWS

이 행 필터링 테이블은 데이터베이스의 뷰를 나열합니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public으로 SELECT 세분화된 액세스 제어 권한이 부여된 뷰만 확인할 수 있습니다.

열 이름 유형 설명
TABLE_CATALOG STRING 카탈로그의 이름입니다. 항상 빈 문자열입니다.
TABLE_SCHEMA STRING 스키마의 이름입니다. 이름이 지정되지 않은 경우 빈 문자열입니다.
TABLE_NAME STRING 뷰의 이름입니다.
VIEW_DEFINITION STRING 뷰를 정의하는 쿼리의 SQL 텍스트.
SECURITY_TYPE STRING 뷰의 보안 유형입니다. INVOKER 또는 DEFINER.

자세한 내용은 뷰 정보를 참조하세요.

ROLES

이 행 필터링 테이블은 시스템 역할을 포함하여 세분화된 액세스 제어를 위한 정의된 데이터베이스 역할을 나열합니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 모든 데이터베이스 역할을 볼 수 있습니다. 다른 모든 주 구성원은 직접 또는 상속을 통해 액세스 권한을 부여받은 데이터베이스 역할만 볼 수 있습니다.

열 이름 유형 설명
ROLE_NAME STRING 데이터베이스 역할의 이름입니다.
IS_SYSTEM BOOL 데이터베이스 역할이 시스템 역할인 경우는 TRUE, 그렇지 않으면 FALSE입니다.

ROLE_GRANTEES

이 행 필터링 테이블은 모든 데이터베이스 역할에 명시적으로 부여된 모든 역할 멤버십을 나열합니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 현재 데이터베이스 역할 또는 현재 데이터베이스 역할이 구성원인 역할에 부여된 역할 멤버십만 확인할 수 있습니다.

모든 데이터베이스 역할은 공개 역할의 구성원이므로 결과에서 공개 역할의 암시적 멤버십에 대한 레코드가 생략됩니다.

열 이름 유형 설명
ROLE_NAME STRING 이 멤버십이 부여된 데이터베이스 역할의 이름입니다.
GRANTEE STRING 이 멤버십이 부여된 데이터베이스 역할의 이름입니다.

CHANGE_STREAMS

이 행 필터링 테이블에는 데이터베이스의 모든 변경 내역이 나와 있으며 전체 데이터베이스를 추적하는지 아니면 특정 테이블이나 열을 추적하는지 보여줍니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public으로 부여된 SELECT 세분화된 액세스 제어 권한이 있는 변경 내역만 확인할 수 있습니다.

열 이름 유형 설명
CHANGE_STREAM_CATALOG STRING 변경 내역의 카탈로그 이름입니다. 항상 빈 문자열입니다.
CHANGE_STREAM_SCHEMA STRING 이 변경 내역의 스키마 이름입니다. 항상 빈 문자열입니다.
CHANGE_STREAM_NAME STRING 변경 내역의 이름입니다.
ALL BOOL 이 변경 내역이 전체 데이터베이스를 추적하면 TRUE입니다. 이 변경 내역이 특정 테이블이나 열을 추적하면 FALSE입니다.

CHANGE_STREAM_TABLES

이 행 필터링 테이블에는 테이블 및 이를 감시하는 변경 내역에 대한 정보가 포함됩니다. 각 행은 테이블 1개 및 변경 내역 1개를 설명합니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public으로 부여된 SELECT 권한의 변경 내역에 대한 행만 볼 수 있습니다.

CHANGE_STREAM_TABLES의 데이터에는 전체 데이터베이스를 추적하는 테이블과 변경 내역 간의 암시적 관계가 포함되지 않습니다.

열 이름 유형 설명
CHANGE_STREAM_CATALOG STRING 변경 내역의 카탈로그 이름입니다. 항상 빈 문자열입니다.
CHANGE_STREAM_SCHEMA STRING 변경 내역의 스키마 이름입니다. 항상 빈 문자열입니다.
CHANGE_STREAM_NAME STRING 이 행이 참조하는 변경 내역의 이름입니다.
TABLE_CATALOG STRING 테이블 카탈로그의 이름입니다. 항상 빈 문자열입니다.
TABLE_SCHEMA STRING 테이블의 스키마 이름입니다. 항상 빈 문자열입니다.
TABLE_NAME STRING 이 행이 참조하는 테이블의 이름입니다.
ALL_COLUMNS BOOL 이 행의 변경 내역에서 이 행이 참조하는 테이블 전체를 추적하면 TRUE입니다. 그 이외의 경우 FALSE를 사용합니다.

CHANGE_STREAM_COLUMNS

이 행 필터링 테이블에는 테이블 열과 이를 감시하는 변경 내역에 대한 정보가 포함되어 있습니다. 각 행은 하나의 변경 내역과 하나의 열을 설명합니다. 변경 내역이 전체 테이블을 추적하면 해당 테이블의 열은 이 뷰에 표시되지 않습니다.

데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public으로 부여된 SELECT 권한의 변경 내역에 대한 행만 볼 수 있습니다.

열 이름 유형 설명
CHANGE_STREAM_CATALOG STRING 변경 내역의 카탈로그 이름입니다. 항상 빈 문자열입니다.
CHANGE_STREAM_SCHEMA STRING 변경 내역의 스키마 이름입니다. 항상 빈 문자열입니다.
CHANGE_STREAM_NAME STRING 변경 내역의 이름입니다.
TABLE_CATALOG STRING 테이블 카탈로그의 이름입니다. 항상 빈 문자열입니다.
TABLE_SCHEMA STRING 테이블의 스키마 이름입니다. 항상 빈 문자열입니다.
TABLE_NAME STRING 이 행이 참조하는 테이블의 이름입니다.
COLUMN_NAME STRING 이 행이 참조하는 열의 이름입니다.

CHANGE_STREAM_OPTIONS

이 행 필터링 테이블에는 변경 내역의 구성 옵션이 포함됩니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public으로 부여된 SELECT 권한의 변경 내역에 대한 옵션만 볼 수 있습니다.

열 이름 유형 설명
CHANGE_STREAM_CATALOG STRING 변경 내역의 카탈로그 이름입니다. 항상 빈 문자열입니다.
CHANGE_STREAM_SCHEMA STRING 변경 내역의 스키마 이름입니다. 항상 빈 문자열입니다.
CHANGE_STREAM_NAME STRING 변경 내역의 이름입니다.
OPTION_NAME STRING 변경 내역 옵션의 이름입니다.
OPTION_TYPE STRING 변경 내역 옵션의 데이터 유형입니다.
OPTION_VALUE STRING 변경 내역 옵션 값입니다.

CHANGE_STREAM_PRIVILEGES

이 행 필터링 테이블에는 public을 포함한 모든 데이터베이스 역할에 대한 모든 변경 내역에 부여된 모든 세분화된 액세스 제어 권한이 나열됩니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public으로 변경 내역에 부여된 권한만 볼 수 있습니다.

열 이름 유형 설명
CHANGE_STREAM_CATALOG STRING 변경 내역이 포함된 카탈로그의 이름입니다(빈 문자열).
CHANGE_STREAM_SCHEMA STRING 변경 내역이 포함된 스키마의 이름입니다(빈 문자열).
CHANGE_STREAM_NAME STRING 변경 내역의 이름입니다.
PRIVILEGE_TYPE STRING SELECT(변경 내역에 허용되는 유일한 권한)
GRANTEE STRING 이 권한이 부여된 데이터베이스 역할의 이름입니다.

ROUTINES

이 행 필터링 테이블은 데이터베이스의 모든 변경 내역 읽기 함수를 나열합니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public으로 부여된 EXECUTE 세분화된 액세스 제어 권한의 변경 내역 읽기 함수만 확인할 수 있습니다.

열 이름 유형 설명
SPECIFIC_CATALOG STRING 루틴 카탈로그의 이름입니다. 항상 빈 문자열입니다.
SPECIFIC_SCHEMA STRING 루틴의 스키마 이름입니다. 항상 빈 문자열입니다.
SPECIFIC_NAME STRING 루틴의 이름입니다. 이름이 오버로드되어도 루틴을 고유하게 식별합니다.
ROUTINE_CATALOG STRING 루틴 카탈로그의 이름입니다. 항상 빈 문자열입니다.
ROUTINE_SCHEMA STRING 루틴의 스키마 이름입니다. 항상 빈 문자열입니다.
ROUTINE_NAME STRING 루틴의 이름입니다. (과부하 시 중복될 수 있습니다.)
ROUTINE_TYPE STRING 루틴의 유형(FUNCTION 또는 PROCEDURE)입니다. 항상FUNCTION
DATA_TYPE STRING 루틴이 반환하는 데이터 유형
ROUTINE_BODY STRING 루틴 본문의 유형(SQL 또는 EXTERNAL)입니다.
ROUTINE_DEFINITION STRING ROUTINE_BODY에 대한 정의입니다.
SECURITY_TYPE STRING 루틴의 보안 유형, 항상 INVOKER입니다.

ROUTINE_OPTIONS

이 행 필터링 테이블에는 정의된 각 변경 내역 읽기 함수의 각 옵션에 대해 하나의 행이 포함됩니다.

데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public으로 부여된 EXECUTE 세분화된 액세스 제어 권한의 변경 내역 읽기 함수에 대한 옵션만 확인할 수 있습니다.

열 이름 유형 설명
SPECIFIC_CATALOG STRING 루틴 카탈로그의 이름입니다. 항상 빈 문자열입니다.
SPECIFIC_SCHEMA STRING 루틴의 스키마 이름입니다. 항상 빈 문자열입니다.
SPECIFIC_NAME STRING 루틴의 이름입니다. 이름 과부하가 발생할 경우 루틴을 고유하게 식별합니다.
OPTION_NAME STRING 옵션을 고유하게 식별하는 SQL 식별자입니다.
OPTION_TYPE STRING OPTION_VALUE의 데이터 유형입니다.
OPTION_VALUE STRING 이 옵션의 값을 설명하는 SQL 리터럴입니다. 이 열의 값은 쿼리의 일부로 파싱할 수 있어야 합니다.

PARAMETERS

이 행 필터링 테이블은 각 변경 내역 읽기 함수에 대한 인수를 정의합니다. 각 행은 변경 내역 읽기 함수 1개의 인수 1개를 설명합니다.

데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public에 대해 EXECUTE 세분화된 액세스 제어 권한이 부여된 변경 내역 읽기 함수에 대한 매개변수만 볼 수 있습니다.

열 이름 유형 설명
SPECIFIC_CATALOG STRING 루틴 카탈로그의 이름입니다. 항상 빈 문자열입니다.
SPECIFIC_SCHEMA STRING 루틴의 스키마 이름입니다. 항상 빈 문자열입니다.
SPECIFIC_NAME STRING 루틴의 이름입니다. 이름 과부하가 발생할 경우 루틴을 고유하게 식별합니다.
ORDINAL_POSITION INT64 루틴에서 매개변수의 서수 위치이며 값 1부터 시작합니다.
PARAMETER_NAME STRING 매개변수의 이름입니다.
DATA_TYPE STRING 매개변수의 데이터 유형입니다.

ROUTINE_PRIVILEGES

이 행 필터링 테이블에는 public을 포함한 모든 데이터베이스 역할에 대한 모든 변경 내역 읽기 함수에 부여된 모든 세분화된 액세스 제어 권한이 나열됩니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 현재 데이터베이스 역할, 현재 데이터베이스 역할이 구성원인 역할 또는 public으로 부여된 변경 내역 읽기 함수에 대한 권한만 확인할 수 있습니다.

열 이름 유형 설명
SPECIFIC_CATALOG STRING 루틴 카탈로그의 이름입니다. 항상 빈 문자열입니다.
SPECIFIC_SCHEMA STRING 루틴의 스키마 이름입니다. 항상 빈 문자열입니다.
SPECIFIC_NAME STRING 루틴의 이름입니다. 이름 과부하가 발생할 경우 루틴을 고유하게 식별합니다.
PRIVILEGE_TYPE STRING 항상 EXECUTE입니다.
GRANTEE STRING 이 권한이 부여된 데이터베이스 역할의 이름입니다.

ROLE_TABLE_GRANTS

이 행 필터링 테이블에는 public을 포함하여 모든 데이터베이스 역할에 대한 모든 테이블과 뷰에 부여된 모든 세분화된 액세스 제어 권한이 나열됩니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 현재 데이터베이스 역할 및 현재 데이터베이스 역할이 구성원인 역할(public 제외)으로 테이블 및 뷰에 부여된 권한만 확인할 수 있습니다.

열 이름 유형 설명
GRANTOR STRING 사용되지 않음. 항상 NULL입니다.
GRANTEE STRING 이 권한이 부여된 데이터베이스 역할의 이름입니다.
TABLE_CATALOG STRING 사용되지 않음. 항상 빈 문자열입니다.
TABLE_SCHEMA STRING 사용되지 않음. 항상 빈 문자열입니다.
TABLE_NAME STRING 테이블 또는 뷰의 이름입니다.
PRIVILEGE_TYPE STRING 권한 유형(SELECT, INSERT, UPDATE 또는 DELETE)입니다.
IS_GRANTABLE STRING 사용되지 않음. 항상 NO입니다.

ROLE_COLUMN_GRANTS

이 행 필터링 테이블에는 public을 포함한 모든 데이터베이스 역할에 대해 모든 열에 부여된 모든 세분화된 액세스 제어 권한이 나열됩니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 현재 데이터베이스 역할 및 현재 데이터베이스 역할이 구성원인 역할(public 제외)에 대한 열에 부여된 권한만 확인할 수 있습니다.

뷰에는 열이 포함된 테이블 또는 뷰에서 열이 상속하는 SELECT, INSERT, UPDATE 권한이 포함됩니다.

열 이름 유형 설명
GRANTOR STRING 사용되지 않음. 항상 NULL입니다.
GRANTEE STRING 이 권한이 부여된 데이터베이스 역할의 이름입니다.
TABLE_CATALOG STRING 사용되지 않음. 항상 빈 문자열입니다.
TABLE_SCHEMA STRING 사용되지 않음. 항상 빈 문자열입니다.
TABLE_NAME STRING 열이 포함된 테이블 또는 뷰의 이름입니다.
COLUMN_NAME STRING 권한이 부여된 열의 이름입니다.
PRIVILEGE_TYPE STRING 권한 유형(SELECT, INSERT, UPDATE)입니다.
IS_GRANTABLE STRING 사용되지 않음. 항상 NO입니다.

ROLE_CHANGE_STREAM_GRANTS

이 행 필터링 테이블에는 public을 포함한 모든 데이터베이스 역할에 대한 모든 변경 내역에 부여된 SELECT 권한이 나열됩니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 현재 데이터베이스 역할에 대한 변경 내역 및 현재 데이터베이스 역할이 구성원인 역할(public 제외) 에 부여된 권한만 볼 수 있습니다.

열 이름 유형 설명
CHANGE_STREAM_CATALOG STRING 사용되지 않음. 항상 빈 문자열입니다.
CHANGE_STREAM_SCHEMA STRING 변경 내역이 포함된 스키마의 이름입니다.
CHANGE_STREAM_NAME STRING 변경 내역의 이름입니다.
PRIVILEGE_TYPE STRING 권한 유형입니다(SELECT만 해당).
GRANTEE STRING 이 권한이 부여된 데이터베이스 역할의 이름입니다.

ROLE_MODEL_GRANTS

이 행 필터링 테이블에는 public을 포함한 모든 데이터베이스 역할에 대해 모든 모델에 부여된 모든 세분화된 액세스 제어 권한이 나열됩니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 현재 데이터베이스 역할 및 현재 데이터베이스 역할이 구성원인 역할(public 제외)으로 테이블 및 뷰에 부여된 권한만 확인할 수 있습니다.

열 이름 유형 설명
GRANTOR STRING 사용되지 않음. 항상 NULL입니다.
GRANTEE STRING 이 권한이 부여된 데이터베이스 역할의 이름입니다.
MODEL_CATALOG STRING 사용되지 않음. 항상 빈 문자열입니다.
MODEL_SCHEMA STRING 사용되지 않음. 항상 빈 문자열입니다.
MODEL_NAME STRING 모델의 이름입니다.
PRIVILEGE_TYPE STRING 권한 유형(EXECUTE)입니다.
IS_GRANTABLE STRING 사용되지 않음. 항상 NO입니다.

ROLE_ROUTINE_GRANTS

이 행 필터링 테이블에는 public을 포함한 모든 데이터베이스 역할에 대한 모든 변경 내역 읽기 함수에 부여된 EXECUTE 권한이 나열됩니다. IAM 데이터베이스 수준 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 현재 데이터베이스 역할 및 현재 데이터베이스 역할이 구성원인 역할(public 제외)에 대한 변경 내역 읽기 함수에 부여된 권한만 확인할 수 있습니다.

열 이름 유형 설명
GRANTOR STRING 사용되지 않음. 항상 NULL입니다.
GRANTEE STRING 권한이 부여된 역할의 이름입니다.
SPECIFIC_CATALOG STRING 루틴 카탈로그의 이름입니다.
SPECIFIC_SCHEMA STRING 루틴 스키마의 이름입니다.
SPECIFIC_NAME STRING 루틴의 이름입니다. 이름 과부하가 발생할 경우 루틴을 고유하게 식별합니다.
PRIVILEGE_TYPE STRING 부여된 권한의 유형입니다. 항상 EXECUTE입니다.
IS_GRANTABLE STRING 사용되지 않음. 항상 NO입니다.

MODELS

이 테이블은 데이터베이스의 모든 모델을 나열합니다.

열 이름 유형 설명
MODEL_CATALOG STRING 카탈로그의 이름입니다. 항상 빈 문자열입니다.
MODEL_SCHEMA STRING 이 모델의 스키마 이름입니다. 항상 빈 문자열입니다.
MODEL_NAME STRING 모델의 이름입니다.
IS_REMOTE BOOL 원격 모델인 경우 TRUE입니다. 관리형 모델인 경우 FALSE입니다.

MODEL_OPTIONS

이 테이블에는 모델의 구성 옵션이 포함됩니다.

열 이름 유형 설명
MODEL_CATALOG STRING 카탈로그의 이름입니다. 항상 빈 문자열입니다.
MODEL_SCHEMA STRING 이 모델의 스키마 이름입니다. 항상 빈 문자열입니다.
MODEL_NAME STRING 모델의 이름입니다.
OPTION_NAME STRING 모델 옵션의 이름입니다.
OPTION_TYPE STRING 모델 옵션의 데이터 유형입니다.
OPTION_VALUE STRING 모델 옵션 값입니다.

MODEL_COLUMNS

이 테이블에는 모델의 열이 나열됩니다.

열 이름 유형 설명
MODEL_CATALOG STRING 카탈로그의 이름입니다. 항상 빈 문자열입니다.
MODEL_SCHEMA STRING 이 모델의 스키마 이름입니다. 항상 빈 문자열입니다.
MODEL_NAME STRING 모델의 이름입니다.
COLUMN_KIND STRING 모델 열 종류입니다. "INPUT" 또는 "OUTPUT" 중 하나입니다.
COLUMN_NAME STRING 열의 이름입니다.
DATA_TYPE STRING 열의 표준 SQL 데이터 유형입니다.
ORDINAL_POSITION INT64 열의 서수 위치이며 선언된 열의 순서를 유지하도록 값 1부터 시작합니다.
IS_EXPLICIT BOOL 열이 DDL에서 명시적으로 지정된 경우 TRUE, 열이 엔드포인트에서 검색된 경우 FALSE입니다.

MODEL_COLUMN_OPTIONS

이 테이블에는 모델 열의 구성 옵션이 포함됩니다.

열 이름 유형 설명
MODEL_CATALOG STRING 카탈로그의 이름입니다. 항상 빈 문자열입니다.
MODEL_SCHEMA STRING 이 모델의 스키마 이름입니다. 항상 빈 문자열입니다.
MODEL_NAME STRING 모델의 이름입니다.
COLUMN_KIND STRING 모델 열 종류입니다. "INPUT" 또는 "OUTPUT" 중 하나입니다.
COLUMN_NAME STRING 열의 이름입니다.
OPTION_NAME STRING 모델 열 옵션의 이름입니다.
OPTION_TYPE STRING 모델 열 옵션의 데이터 유형입니다.
OPTION_VALUE STRING 모델 열 옵션 값입니다.

MODEL_PRIVILEGES

이 행 필터링 테이블에는 모델 수준에서 public을 포함하여 데이터베이스 역할에 부여된 모든 권한이 나열됩니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 현재 데이터베이스 역할에 EXECUTE 세분화된 액세스 제어 권한이 부여된 모델, 현재 데이터베이스 역할이 구성원인 역할 또는 public에 대한 권한만 볼 수 있습니다.

열 이름 유형 설명
MODEL_CATALOG STRING 사용되지 않음. 항상 빈 문자열입니다.
MODEL_SCHEMA STRING 사용되지 않음. 항상 빈 문자열입니다.
MODEL_NAME STRING 세분화된 액세스 제어 권한이 부여되는 모델의 이름입니다.
PRIVILEGE_TYPE STRING EXECUTE>
GRANTEE STRING 이 권한이 부여된 데이터베이스 역할의 이름입니다.

PROPERTY_GRAPHS

이 행 필터링 테이블은 데이터베이스의 속성 그래프를 나열합니다. 데이터베이스 수준 IAM 권한이 있는 주 구성원 및 spanner_info_reader 시스템 역할 또는 해당 역할의 구성원에 대한 액세스 권한이 부여된 주 구성원은 이 뷰의 모든 행을 볼 수 있습니다. 다른 모든 주 구성원은 이러한 그래프를 정의하는 데 사용된 모든 테이블을 볼 수 있는 요구사항을 충족하는 경우에만 속성 그래프를 볼 수 있습니다.

열 이름 유형 설명
PROPERTY_GRAPH_CATALOG STRING 카탈로그의 이름입니다. 항상 빈 문자열입니다.
PROPERTY_GRAPH_SCHEMA STRING 스키마의 이름입니다. 이름이 지정되지 않은 경우 빈 문자열입니다.
PROPERTY_GRAPH_NAME STRING 속성 그래프의 이름입니다.
PROPERTY_GRAPH_METADATA_JSON JSON JSON 형식의 속성 그래프 정의입니다.

PROPERTY_GRAPH_METADATA_JSON 열에는 다음과 같이 정의된 PropertyGraph JSON 객체가 포함됩니다.

JSON 객체 이름 필드 이름 JSON 유형 설명
PropertyGraph catalog string 카탈로그의 이름입니다. 항상 빈 문자열입니다.
schema string 스키마의 이름입니다. 이름이 지정되지 않은 경우 빈 문자열입니다.
name string 속성 그래프의 이름입니다.
nodeTables array<object> 노드의 GraphElementTable 객체 목록입니다.
edgeTables array<object> 에지의 GraphElementTable 객체 목록입니다.
labels array<object> GraphElementLabel 객체 목록입니다.
propertyDeclarations array<object> GraphPropertyDeclaration 객체 목록입니다.
GraphElementTable name string 그래프 요소 테이블의 이름입니다.
kind string NODE 또는 EDGE.
baseCatalogName string 기본 테이블이 포함된 카탈로그의 이름입니다.
baseSchemaName string 기본 테이블이 포함된 스키마의 이름입니다.
baseTableName string 요소가 생성되는 입력 테이블의 이름입니다.
keyColumns array<string> 요소 키를 구성하는 열 이름입니다.
labelNames array<string> 이 요소 표에 연결된 라벨 이름입니다.
propertyDefinitions array<object> GraphPropertyDefinition 객체 목록입니다.
sourceNodeTable object GraphNodeTableReference 객체입니다. kindEDGE인 경우에만 존재합니다.
destinationNodeTable object GraphNodeTableReference 객체입니다. kindEDGE인 경우에만 존재합니다.
GraphNodeTableReference nodeTableName string 그래프 요소 테이블의 이름입니다.
edgeTableColumns array<string> 에지의 소스 및 대상 키와 연결된 열의 이름입니다.
nodeTableColumns array<string> 노드의 소스 키 및 대상 키와 연결된 열의 이름입니다.
GraphElementLabel name string 라벨 이름입니다.
propertyDeclarationNames array<string> 이 라벨과 연결된 속성의 이름입니다.
GraphPropertyDeclaration name string 속성의 이름입니다.
type string 속성의 유형입니다.
GraphPropertyDefinition propertyDeclarationName string 속성의 이름입니다.
valueExpressionSql string 속성을 정의하는 표현식입니다.

예시

사용자 스키마의 각 테이블에 대한 정보를 반환합니다.

SELECT
  t.table_name,
  t.parent_table_name
FROM
  information_schema.tables AS t
WHERE
  t.table_catalog = ''
  AND
  t.table_schema = ''
ORDER BY
  t.table_catalog,
  t.table_schema,
  t.table_name

INFORMATION_SCHEMA에 있는 모든 테이블의 이름을 반환합니다.

SELECT
  t.table_name
FROM
  information_schema.tables AS t
WHERE
  t.table_schema = "SPANNER_SYS"

사용자 테이블 MyTable의 열에 대한 정보를 반환합니다.

SELECT
  t.column_name,
  t.spanner_type,
  t.is_nullable
FROM
  information_schema.columns AS t
WHERE
  t.table_catalog = ''
  AND
  t.table_schema = ''
  AND
  t.table_name = 'MyTable'
ORDER BY
  t.table_catalog,
  t.table_schema,
  t.table_name,
  t.ordinal_position

데이터베이스의 기본 리더 리전 정보를 반환합니다. 기본 리더가 설정되지 않은 경우 빈 값을 반환합니다.

SELECT
  s.option_name,
  s.option_value
FROM
  information_schema.database_options s
WHERE
  s.option_name = 'default_leader'

사용자 스키마의 각 색인에 대한 정보를 반환합니다.

SELECT
  t.table_name,
  t.index_name,
  t.parent_table_name
FROM
  information_schema.indexes AS t
WHERE
  t.table_catalog = ''
  AND
  t.table_schema = ''
  AND
  t.index_type != 'PRIMARY_KEY'
ORDER BY
  t.table_catalog,
  t.table_schema,
  t.table_name,
  t.index_name

기본값 외의 옵션을 사용하는 모든 열을 반환합니다.

SELECT
  t.table_name,
  t.column_name,
  t.option_type,
  t.option_value,
  t.option_name
FROM
  information_schema.column_options AS t
WHERE
  t.table_catalog = ''
AND
  t.table_schema = ''

현재 옵티마이저 관련 데이터베이스 옵션을 반환합니다.

SELECT
  s.option_name,
  s.option_value
FROM
  information_schema.database_options s
WHERE
  s.schema_name=''
  AND s.option_name IN ('optimizer_version',
    'optimizer_statistics_package')

사용 가능한 모든 통계 패키지를 반환합니다.

SELECT
  *
FROM
  information_schema.spanner_statistics;

모든 시퀀스를 반환합니다.

SELECT
  *
FROM
  information_schema.sequences;

이름이 'MySequence'인 시퀀스의 모든 시퀀스 옵션을 반환합니다.

SELECT
  *
FROM
  information_schema.sequence_options WHERE name="MySequence";

모든 속성 그래프의 이름과 정의를 반환합니다.

SELECT
  property_graph_name,
  property_graph_metadata_json
FROM
  information_schema.property_graphs

모든 속성 그래프의 이름을 라벨 및 속성과 함께 반환합니다.

SELECT
  property_graph_name,
  property_graph_metadata_json.labels,
  property_graph_metadata_json.propertyDeclarations
FROM
  information_schema.property_graphs

다음 단계

  • 데이터베이스 문제를 조사하는 데 도움이 되는 이용 가능한 점검 도구 알아보기