데이터 세트 수준 액세스 제어 변경사항
데이터 세트 수준 액세스 제어에 대해
enable_fine_grained_dataset_acls_option 구성 시행을 선택하면 bigquery.datasets.getIamPolicy
Identity and Access Management (IAM) 권한은
데이터 세트의 액세스 제어를 보고
INFORMATION_SCHEMA.OBJECT_PRIVILEGES
뷰를 쿼리하는 데 필요합니다. API를 사용하여 액세스 제어가 포함된 데이터 세트를 만들거나 데이터 세트의 액세스 제어를 업데이트하려면 bigquery.datasets.setIamPolicy 권한이 필요합니다.
선택하지 않으면 데이터 세트 수준 액세스 제어가 변경되지 않습니다.
시행 선택
권한 변경사항 시행을 선택할 수 있습니다. 선택하면 데이터 세트의 액세스 제어를 가져오는 데 bigquery.datasets.getIamPolicy 권한이 필요하고 API를 사용하여 액세스 제어가 포함된 데이터 세트를 만들거나 데이터 세트의 액세스 제어를 업데이트하는 데 bigquery.datasets.setIamPolicy 권한이 필요합니다.
시행을 선택하려면 조직 또는 프로젝트 수준에서 enable_fine_grained_dataset_acls_option 구성 설정을 TRUE로 설정합니다. 선택한 후 선택 해제하려면 조직 또는 프로젝트 수준에서 enable_fine_grained_dataset_acls_option 구성 설정을 FALSE로 설정합니다. 구성 설정을 사용 설정하는 방법은 구성 설정
관리를 참조하세요.
구성 설정 예
다음 예에서는 enable_fine_grained_dataset_acls_option 구성 설정을 설정하고 삭제하는 방법을 보여줍니다.
조직 설정 구성
조직 설정을 구성하려면
ALTER ORGANIZATION SET OPTIONS DDL 문을 사용합니다.
다음 예에서는 조직 수준에서 enable_fine_grained_dataset_acls_option을 TRUE로 설정합니다.
ALTER ORGANIZATION SET OPTIONS ( `region-REGION.enable_fine_grained_dataset_acls_option` = TRUE);
REGION을 조직과 연결된
리전
(예: us 또는 europe-west6)으로 바꿉니다.
다음 예에서는 조직 수준 enable_fine_grained_dataset_acls_option 설정을 삭제합니다.
ALTER ORGANIZATION SET OPTIONS ( `region-REGION.enable_fine_grained_dataset_acls_option` = FALSE);
프로젝트 설정 구성
프로젝트 설정을 구성하려면 ALTER PROJECT SET OPTIONS DDL 문을 사용합니다.
ALTER PROJECT SET OPTIONS DDL 문은 선택적으로 project_id 변수를 허용합니다. project_id를 지정하지 않으면 기본값은 쿼리가 실행되는 현재 프로젝트입니다.
다음 예에서는 enable_fine_grained_dataset_acls_option을 TRUE로 설정합니다.
ALTER PROJECT PROJECT_ID SET OPTIONS ( `region-REGION.enable_fine_grained_dataset_acls_option` = TRUE);
PROJECT_ID를 프로젝트 ID로 바꿉니다.
다음 예에서는 프로젝트 수준 enable_fine_grained_dataset_acls_option 설정을 삭제합니다.
ALTER PROJECT PROJECT_ID SET OPTIONS ( `region-REGION.enable_fine_grained_dataset_acls_option` = FALSE);
커스텀 역할 변경사항
권한 변경사항 시행을 선택하면
bigquery.datasets.get, bigquery.datasets.create, 또는
bigquery.datasets.update 권한을 부여하고
bigquery.datasets.getIamPolicy 또는 bigquery.datasets.setIamPolicy 권한도 부여하지 않는 모든 커스텀 역할이 영향을 받습니다.
커스텀 역할의 기존 기능을 유지하려면 bigquery.datasets.get,
bigquery.datasets.update, 또는 bigquery.datasets.create 권한만 포함하는 모든 커스텀 역할을
업데이트하여 bigquery.datasets.getIamPolicy 또는
bigquery.datasets.setIamPolicy 권한을 포함해야 합니다. 커스텀 역할에서 데이터 세트의 메타데이터만 보거나 업데이트해야 하는 경우 새 dataset_view 및 update_mode 매개변수를 사용합니다.
BigQuery 사전 정의된 역할은 이 변경사항의 영향을 받지 않습니다. All
권한을 부여하는 모든
사전 정의된 역할은 bigquery.datasets.get 권한도 부여합니다.bigquery.datasets.getIamPolicy bigquery.datasets.update 권한을 부여하는 모든 사전 정의된 역할은 bigquery.datasets.setIamPolicy 권한도 부여합니다.
bq 명령줄 도구 명령어 변경사항
조기 시행을 선택하면 다음 bq 도구 명령어가 영향을 받습니다.
bq show
bq show
명령어를 다음 플래그와 함께 사용할 수 있습니다.
--dataset_view={METADATA|ACL|FULL}- 데이터 세트의 액세스 제어 또는 메타데이터를 볼 때 권한을 적용하는 방법을 지정합니다.
다음 중 한 가지 값을 사용합니다.
METADATA: 데이터 세트의 메타데이터만 봅니다. 이 값에는bigquery.datasets.get권한이 필요합니다.ACL: 데이터 세트의 액세스 제어만 봅니다. 이 값에는bigquery.datasets.getIamPolicy권한이 필요합니다.FULL: 데이터 세트의 메타데이터와 액세스 제어를 모두 봅니다. 이 값에는bigquery.datasets.get권한과bigquery.datasets.getIamPolicy권한이 필요합니다.
bq update
bq update
명령어를 다음 플래그와 함께 사용할 수 있습니다.
--update_mode={UPDATE_METADATA|UPDATE_ACL|UPDATE_FULL}- 데이터 세트의 액세스 제어 또는 메타데이터를 업데이트할 때 권한을 적용하는 방법을 지정합니다.
다음 중 한 가지 값을 사용합니다.
UPDATE_METADATA: 데이터 세트의 메타데이터만 업데이트합니다. 이 값에는bigquery.datasets.update권한이 필요합니다.UPDATE_ACL: 데이터 세트의 액세스 제어만 업데이트합니다. 이 값에는bigquery.datasets.setIamPolicy권한이 필요합니다.UPDATE_FULL: 데이터 세트의 메타데이터와 액세스 제어를 모두 업데이트합니다. 이 값에는bigquery.datasets.update권한과bigquery.datasets.setIamPolicy권한이 필요합니다.
데이터 제어 언어 (DCL) 문 변경사항
조기 시행을 선택하면 데이터 제어 언어(DCL)를 사용하여 데이터 세트에서
GRANT 및 REVOKE 문을 실행하는 데 다음 권한이 필요합니다.
bigquery.datasets.setIamPolicy
INFORMATION_SCHEMA 뷰 쿼리 변경사항
조기 시행을 선택하면 bigquery.datasets.getIamPolicy
권한이
INFORMATION_SCHEMA.OBJECT_PRIVILEGES
뷰를 쿼리하는 데 필요합니다.
API 메서드 변경사항
조기 시행을 선택한 후에는 다음 REST v2 API 데이터 세트 메서드가 영향을 받습니다.
datasets.get 메서드
datasets.get 메서드에는
추가 쿼리 매개변수
dataset_view라는 이름이 있습니다.
이 매개변수를 사용하면 datasets.get 메서드에서 반환되는 정보를 더 세부적으로 제어할 수 있습니다. 액세스 제어와 메타데이터를 항상 반환하는 대신 dataset_view 매개변수를 사용하면 메타데이터만 반환할지, 액세스 제어만 반환할지, 둘 다 반환할지 지정할 수 있습니다.
데이터 세트 리소스의 access 필드에는 데이터 세트의 액세스 제어가 포함됩니다. friendlyName, description, labels와 같은 다른 필드는 데이터 세트의 메타데이터를 나타냅니다.
다음 표에서는 dataset_view 매개변수에서 지원하는 다양한 값에 필요한 권한과 API 응답을 보여줍니다.
| 매개변수 값 | 권한 필요 | API 응답 |
|---|---|---|
DATASET_VIEW_UNSPECIFIED (또는 비어 있음) |
|
기본값입니다. 데이터 세트의 메타데이터와 액세스 제어를 반환합니다. |
METADATA |
|
데이터 세트의 메타데이터를 반환합니다. |
ACL |
|
데이터 세트의 액세스 제어, 필수 필드, 출력 전용인 데이터 세트 리소스의 필드를 반환합니다. |
FULL |
|
데이터 세트의 메타데이터와 액세스 제어를 반환합니다. |
조기 시행을 선택하지 않거나 선택한 후 선택 해제하는 경우 METADATA 또는 ACL 값과 함께 dataset_view 매개변수를 사용할 수 있습니다. FULL 및 DATASET_VIEW_UNSPECIFIED (또는 비어 있음) 값은 이전 동작으로 기본 설정됩니다. bigquery.datasets.get 권한을 사용하면 메타데이터와 액세스 제어를 모두 가져올 수 있습니다.
예
다음 예에서는 dataset_view 매개변수가 METADATA로 설정된 GET 요청을 보냅니다.
GET https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?datasetView=METADATA&key=YOUR_API_KEY HTTP/1.1다음을 바꿉니다.
- YOUR_PROJECT: 프로젝트의 이름
- YOUR_DATASET: 데이터 세트의 이름
- YOUR_API_KEY: API 키입니다.
datasets.update 메서드
datasets.update 메서드
에는 추가 쿼리 매개변수
가 있습니다. update_mode
이 매개변수를 사용하면 datasets.update 메서드에서 업데이트되는 필드를 더 세부적으로 제어할 수 있습니다. 액세스 제어와 메타데이터를 항상 업데이트할 수 있도록 허용하는 대신 update_mode 매개변수를 사용하면 메타데이터만 업데이트할지, 액세스 제어만 업데이트할지, 둘 다 업데이트할지 지정할 수 있습니다.
데이터 세트 리소스의 access 필드에는 데이터 세트의 액세스 제어가 포함됩니다. friendlyName, description, labels와 같은 다른 필드는 데이터 세트의 메타데이터를 나타냅니다.
다음 표에서는 update_mode 매개변수에서 지원하는 다양한 값에 필요한 권한과 API 응답을 보여줍니다.
| 매개변수 값 | 권한 필요 | API 응답 |
|---|---|---|
UPDATE_MODE_UNSPECIFIED (또는 비어 있음) |
|
기본값입니다. 데이터 세트의 업데이트된 메타데이터와 액세스 제어를 반환합니다. |
UPDATE_METADATA |
|
데이터 세트의 업데이트된 메타데이터를 반환합니다. |
UPDATE_ACL |
|
데이터 세트의 업데이트된 액세스 제어, 필수 필드, 출력 전용인 데이터 세트 리소스의 필드를 반환합니다. |
UPDATE_FULL |
|
데이터 세트의 업데이트된 메타데이터와 액세스 제어를 반환합니다. |
조기 시행을 선택하지 않거나 선택한 후 선택 해제하는 경우 BigQuery는 이전 동작으로 기본 설정됩니다. bigquery.datasets.update 권한을 사용하면 메타데이터와 액세스 제어를 모두 업데이트할 수 있습니다.
예
다음 예에서는 update_mode 매개변수가 METADATA로 설정된 PUT 요청을 보냅니다.
PUT https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?updateMode=METADATA&key=YOUR_API_KEY HTTP/1.1다음을 바꿉니다.
- YOUR_PROJECT: 프로젝트의 이름
- YOUR_DATASET: 데이터 세트의 이름
- YOUR_API_KEY: API 키 이름
datasets.patch 메서드
datasets.patch 메서드
에는 추가 쿼리 매개변수
update_mode가 있습니다.
이 매개변수를 사용하면 datasets.patch 메서드에서 업데이트되는 필드를 더 세부적으로 제어할 수 있습니다. 액세스 제어와 메타데이터를 항상 업데이트할 수 있도록 허용하는 대신 update_mode 매개변수를 사용하면 메타데이터만 업데이트할지, 액세스 제어만 업데이트할지, 둘 다 업데이트할지 지정할 수 있습니다.
데이터 세트 리소스의 access 필드에는 데이터 세트의 액세스 제어가 포함됩니다. friendlyName, description, labels와 같은 다른 필드는 데이터 세트의 메타데이터를 나타냅니다.
다음 표에서는 update_mode 매개변수에서 지원하는 다양한 값에 필요한 권한과 API 응답을 보여줍니다.
| 매개변수 값 | 권한 필요 | API 응답 |
|---|---|---|
UPDATE_MODE_UNSPECIFIED (또는 비어 있음) |
|
기본값입니다. 데이터 세트의 업데이트된 메타데이터와 액세스 제어를 반환합니다. |
UPDATE_METADATA |
|
데이터 세트의 업데이트된 메타데이터를 반환합니다. |
UPDATE_ACL |
|
데이터 세트의 업데이트된 액세스 제어, 필수 필드, 출력 전용인 데이터 세트 리소스의 필드를 반환합니다. |
UPDATE_FULL |
|
데이터 세트의 업데이트된 메타데이터와 액세스 제어를 반환합니다. |
조기 시행을 선택하지 않거나 선택한 후 선택 해제하는 경우 BigQuery는 이전 동작으로 기본 설정됩니다. bigquery.datasets.update 권한을 사용하면 메타데이터와 액세스 제어를 모두 업데이트할 수 있습니다.
예
다음 예에서는 update_mode 매개변수가 METADATA로 설정된 PUT 요청을 보냅니다.
PUT https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?updateMode=METADATA&key=YOUR_API_KEY HTTP/1.1다음을 바꿉니다.
- YOUR_PROJECT: 프로젝트의 이름
- YOUR_DATASET: 데이터 세트의 이름
- YOUR_API_KEY: API 키 이름
datasets.insert 메서드
조기 시행을 선택하고 datasets.insert 메서드를 사용하는 경우 액세스 제어가 포함된 데이터 세트를 만들려면 BigQuery에서 사용자에게 bigquery.datasets.create 및 bigquery.datasets.setIamPolicy
권한이 부여되었는지 확인합니다.
API를 사용하여 액세스 제어가 없는 데이터 세트를 만드는 경우 bigquery.datasets.create 권한만 필요합니다.