실습 설정 안내 및 요구사항
계정과 진행 상황을 보호하세요. 이 실습을 실행하려면 항상 시크릿 브라우저 창과 실습 사용자 인증 정보를 사용하세요.

BigQuery 승인된 뷰 만들기

실습 1시간 universal_currency_alt 크레딧 5개 show_chart 입문
info 이 실습에는 학습을 지원하는 AI 도구가 통합되어 있을 수 있습니다.
이 콘텐츠는 아직 휴대기기에 최적화되지 않음
최상의 경험을 위해 데스크톱 컴퓨터에서 이메일로 전송된 링크를 사용하여 방문하세요.

개요

BigQuery를 사용할 때는 데이터 세트 수준에서 권한이 구성됩니다. 데이터 엔지니어링팀에서는 원시 데이터로 된 대규모 테이블이 많은 데이터 세트를 유지보수하는데, 이러한 테이블의 하위 집합을 특정 분석가 대상과 공유해야 할 때가 종종 있습니다.

예를 들어 분석가가 사용자별 정보를 포함한 열이 제외된 테이블 버전에 액세스해야 할 수 있습니다. 특정 사용자가 지정된 BigQuery 테이블이나 뷰에서 특정 행만 볼 수 있어야 하는 경우도 있습니다.

이 실습에서는 BigQuery에서 승인된 뷰를 만들고 사용하는 방법을 알아봅니다. 또한 로그인한 사용자에 대한 정보를 사용하여 행 수준 필터링을 수행하는 방법도 알아봅니다.

이 실습에서는 두 명의 Google Cloud 사용자를 제공하여 둘 중 한 사용자로 로그인해 BigQuery 승인된 뷰 권한을 확인할 수 있습니다.

목표

이 실습에서는 다음 작업을 실행하는 방법을 알아봅니다.

  • BigQuery 데이터 세트에 대한 권한을 설정합니다.
  • 승인된 뷰를 사용하여 사용자에게 테이블의 하위 집합에 대한 읽기 전용 액세스 권한을 제공합니다.
  • SESSION_USER() 함수를 사용하여 테이블/뷰 내의 특정 행에 대한 액세스를 제한합니다.

설정 및 요건

각 실습에서는 정해진 기간 동안 새 Google Cloud 프로젝트와 리소스 집합이 무료로 제공됩니다.

  1. 시크릿 창을 사용하여 Qwiklabs에 로그인합니다.

  2. 실습 사용 가능 시간(예: 1:15:00)을 참고하여 해당 시간 내에 완료합니다.
    일시중지 기능은 없습니다. 필요한 경우 다시 시작할 수 있지만 처음부터 시작해야 합니다.

  3. 준비가 되면 실습 시작을 클릭합니다.

  4. 실습 사용자 인증 정보(사용자 이름비밀번호)를 기록해 두세요. Google Cloud Console에 로그인합니다.

  5. Google Console 열기를 클릭합니다.

  6. 다른 계정 사용을 클릭한 다음, 안내 메시지에 실습에 대한 사용자 인증 정보를 복사하여 붙여넣습니다.
    다른 사용자 인증 정보를 사용하는 경우 오류가 발생하거나 요금이 부과됩니다.

  7. 약관에 동의하고 리소스 복구 페이지를 건너뜁니다.

작업 1. 소스 데이터 세트 만들기

이 작업에서는 BigQuery에서 실습에 사용할 소스 데이터 세트를 만듭니다.

새 BigQuery 데이터 세트 만들기

  1. Google Cloud 콘솔의 탐색 메뉴(탐색 메뉴 아이콘)에서 BigQuery를 클릭한 다음 완료를 클릭합니다.
  2. 탐색기 섹션에서 프로젝트 ID 옆에 있는 점 3개를 클릭한 후 데이터 세트 만들기를 클릭하여 프로젝트에 새 데이터 세트를 만듭니다.
  3. 데이터 세트 IDsource_data를 입력하고 데이터 세트 만들기를 클릭합니다. 나머지는 기본값을 그대로 둡니다.

소스 데이터로 새 BigQuery 테이블 만들기

  1. Cloud Shell 활성화를 클릭하여 Cloud Shell을 엽니다. 메시지가 표시되면 계속을 클릭한 다음 승인을 클릭합니다.

  2. Cloud Shell에 다음을 입력하여 소스 데이터를 BigQuery의 새 테이블에 로드합니다.

bq load --autodetect $DEVSHELL_PROJ:source_data.events gs://cloud-training/gcpsec/labs/bq-authviews-source.csv
  1. BigQuery 콘솔에서 탐색기 섹션의 .source_data.events까지 드릴다운하고 미리보기를 클릭하여 로드된 데이터를 검토합니다.
참고: events 테이블을 보려면 브라우저를 새로고침해야 할 수 있습니다. 참고: 이 테이블에는 화상 회의 애플리케이션 사용자가 생성한 이벤트와 관련된 시뮬레이션된 데이터가 포함되어 있습니다. 각 행에는 이벤트를 생성한 사용자에 대한 정보가 포함되어 있습니다.
  1. 향후 단계가 의도한 대로 작동하도록 BigQuery 편집기에 다음 쿼리를 입력합니다.
update source_data.events set email= '{{{ user_1.username | "USERNAME2" }}}' where email='rhonda.burns@example-dev.com'
  1. 실행을 클릭하고 68개의 행이 새 이메일 주소로 업데이트될 때까지 기다립니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 소스 데이터 세트 만들기

작업 2. 분석가 데이터 세트 만들기

이 작업에서는 분석가 데이터 세트를 만들고 분석가를 위한 수정된 뷰를 만들고 로그인한 사용자를 위한 두 번째 뷰를 만듭니다.

데이터 세트 만들기

  1. 탐색기 섹션에서 프로젝트 ID 옆에 있는 점 3개를 클릭한 후 데이터 세트 만들기를 클릭하여 프로젝트에 새 데이터 세트를 만듭니다.
  2. 데이터 세트 IDanalyst_views를 입력하고 데이터 세트 만들기를 클릭합니다. 나머지는 기본값을 그대로 둡니다.

분석가를 위한 수정된 뷰 만들기

  1. BigQuery 편집기 영역에 다음 SQL을 입력하여 사용자별 정보를 제외한 이벤트 데이터를 가져옵니다.
SELECT date, type, company, call_duration, call_type, call_num_users, call_os, rating, comment, session_id, dialin_duration, ticket_number, ticket_driver FROM `{{{ project_0.project_id | "PROJECT_ID" }}}.source_data.events`
  1. 쿼리를 실행하고 결과를 검토합니다. 사용자 정보가 포함되지 않은 것을 확인할 수 있습니다.
  2. 저장 > 뷰 저장을 클릭하여 입력한 쿼리를 뷰로 저장합니다.
  3. 프로젝트와 analyst_views 데이터 세트를 선택합니다.
  4. 대상 테이블 이름으로 no_user_info를 입력하고 저장을 클릭합니다. UI에는 대상 테이블이라고 표시되지만 테이블이 아닌 뷰만 생성됩니다.
  5. 탐색기 섹션에서 .analyst_views.no_user_info로 이동하여 뷰가 작동하는지 확인합니다. 사용자 정보 열이 제외된 뷰의 스키마 정보가 표시됩니다.
  6. no_user_info 뷰를 클릭합니다. 쿼리를 클릭하고 SQL 쿼리가 다음과 같이 표시되도록 SELECT 문에 *를 입력합니다.
SELECT * FROM `{{{ project_0.project_id | "PROJECT_ID" }}}.analyst_views.no_user_info` LIMIT 1000
  1. 쿼리를 실행하면 위의 단계와 유사하지만 사용자 데이터가 없는 결과가 표시됩니다.

로그인한 사용자의 행만 표시하는 두 번째 뷰 만들기

이제 다음 정보를 사용하여 두 번째 뷰를 만듭니다.

  1. BigQuery 편집기에 쿼리를 입력합니다.
SELECT * FROM `{{{ project_0.project_id | "PROJECT_ID" }}}.source_data.events` WHERE email = SESSION_USER()
  1. 실행을 클릭합니다.

  2. 저장 > 뷰 저장을 클릭하여 입력한 쿼리를 뷰로 저장합니다.

  3. 프로젝트와 analyst_views 데이터 세트를 선택합니다.

  4. 대상 테이블 이름으로 row_filter_session_user를 입력하고 저장을 클릭합니다.

참고: 이 두 번째 뷰에서는 사용자가 자신의 이벤트만 볼 수 있으며 다른 사용자의 이벤트는 볼 수 없습니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 분석가 데이터 세트 만들기

작업 3. 분석가 데이터 세트 보호

이 작업에서는 분석가 데이터 세트를 사용자 이름 2와 공유하고 뷰어 역할을 제공하여 데이터 세트를 보호합니다.

데이터 세트 공유

  1. 화면 왼쪽에 있는 데이터 세트 목록에서 analyst_views 데이터 세트를 클릭합니다.

  2. 그런 다음 오른쪽 창에서 공유를 선택하고 권한 관리를 클릭합니다.

  3. 보안 주체 추가를 클릭합니다. 새 보안 주체 필드에 두 번째 실습 계정의 이메일 주소()를 입력합니다.

  4. 역할로 BigQuery 데이터 뷰어를 선택하고 저장을 클릭합니다.

  5. 닫기를 클릭합니다.

작업 4. 소스 데이터 세트 보호

이 작업에서는 소스 데이터 세트를 보호합니다. 데이터 엔지니어링팀 외부의 분석가와 다른 사용자가 소스 데이터 세트에서 사용할 수 있는 원시 데이터에 액세스하지 못하도록 액세스를 제한하려고 합니다.

내가 만든 뷰를 사용하는 사용자가 뷰에서 생성되는 데이터를 볼 수 있으려면 사용자가 아닌 뷰를 승인해야 합니다.

데이터 세트 공유

  1. 화면 왼쪽에 있는 데이터 세트 목록에서 source_data 데이터 세트를 클릭합니다.

  2. 그런 다음 오른쪽 창에서 공유를 선택하고 권한 관리를 클릭합니다.

  3. 권한 목록에서 BigQuery 데이터 뷰어 보안 주체를 펼치고 옆에 있는 휴지통 아이콘을 클릭한 다음 삭제를 클릭하여 확인합니다. 닫기를 클릭합니다.

  4. 공유에서 뷰 승인 을 클릭합니다.

  5. 승인된 뷰에서 다음 설정을 선택합니다.

승인된 뷰

no_user_info

  1. 승인 추가를 클릭합니다.

  2. 이러한 설정으로 다른 항목을 추가하여 기존 뷰를 대체합니다.

승인된 뷰

row_filter_session_user

  1. 승인 추가를 클릭합니다.

  2. 닫기를 클릭합니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 데이터 세트 보호

작업 5. 보안 설정 테스트

이 작업에서는 이전 작업에서 적용한 보안 설정을 테스트합니다.

두 번째 사용자로 Cloud 콘솔에 로그인하기

  1. 시크릿 창에서 탭을 하나 더 엽니다.
  2. Cloud 콘솔로 이동합니다.
  3. 화면의 오른쪽 상단에 있는 사용자 아이콘을 클릭한 다음 계정 추가를 클릭합니다.
  4. Google Skills에서 제공한 사용자 이름 2로 Cloud 콘솔에 로그인합니다.

분석가 뷰에 대한 액세스 확인

  1. Google Cloud 콘솔의 탐색 메뉴(탐색 메뉴 아이콘)에서 BigQuery를 클릭한 다음 완료를 클릭합니다.
  2. 다음 쿼리를 실행하여 no_user_info 뷰에 대해 쿼리를 실행할 수 있는지 확인합니다.
SELECT * FROM `analyst_views.no_user_info` WHERE type='register'

테이블 내의 모든 사용자 등록 이벤트가 포함된 결과 세트가 표시됩니다.

  1. 다음 쿼리를 실행하여 row_filter_session_user 뷰를 쿼리할 수 있고 계정과 연결된 행만 표시되는지 확인합니다.
SELECT * FROM `analyst_views.row_filter_session_user`

두 번째 Google Skills 사용자에 해당하는 68개의 행이 포함된 결과 세트가 표시됩니다.

소스 데이터 세트에 대한 액세스 확인

  1. 다음 쿼리를 사용하여 events 테이블의 원시 데이터에 직접 액세스해 봅니다.
SELECT * FROM `source_data.events`

권한이 없음을 나타내는 액세스 거부됨 오류 메시지가 표시됩니다.

  1. UI의 탐색기 섹션을 통해 source_data 데이터 세트로 이동해 봅니다. 이 또한 허용되지 않아야 합니다.
참고: 두 번째 Google Skills 사용자는 analyst_views 데이터 세트의 테이블과 뷰를 볼 수 있는 권한이 있지만 source_data 데이터 세트의 항목을 볼 수 있는 권한은 없습니다.

이 사용자가 뷰를 쿼리하면 뷰 자체에 source_data 데이터 세트의 테이블에 대해 작동하는 데 필요한 권한이 있으므로 해당 데이터를 사용자에게 반환합니다.

행 필터링 뷰에서는 사용자의 이메일 주소를 가져와 이를 사용해 표시되는 행을 필터링합니다. 이 뷰를 쿼리하는 모든 사용자에게 서로 다른 결과가 반환되며, 특히 이메일 열에는 해당 사용자의 이메일이 포함된 행이 있습니다.

수고하셨습니다

이 실습에서는 다음 작업을 수행하는 방법을 배웠습니다.

  • BigQuery 데이터 세트에 대한 권한을 설정합니다.
  • 뷰를 승인하여 사용자에게 테이블의 하위 집합에 대한 읽기 전용 액세스 권한을 제공합니다.
  • SESSION_USER() 함수를 사용하여 테이블/뷰 내의 특정 행에 대한 액세스를 제한합니다.

실습 종료하기

실습을 완료하면 실습 종료를 클릭합니다. Google Cloud Skills Boost에서 사용된 리소스를 자동으로 삭제하고 계정을 지웁니다.

실습 경험을 평가할 수 있습니다. 해당하는 별표 수를 선택하고 의견을 입력한 후 제출을 클릭합니다.

별점의 의미는 다음과 같습니다.

  • 별표 1개 = 매우 불만족
  • 별표 2개 = 불만족
  • 별표 3개 = 중간
  • 별표 4개 = 만족
  • 별표 5개 = 매우 만족

의견을 제공하고 싶지 않다면 대화상자를 닫으면 됩니다.

의견이나 제안 또는 수정할 사항이 있다면 지원 탭을 사용하세요.

Copyright 2026 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.

시작하기 전에

  1. 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
  2. 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
  3. 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.

시크릿 브라우징 사용

  1. 실습에 입력한 사용자 이름비밀번호를 복사합니다.
  2. 비공개 모드에서 콘솔 열기를 클릭합니다.

콘솔에 로그인

    실습 사용자 인증 정보를 사용하여
  1. 로그인합니다. 다른 사용자 인증 정보를 사용하면 오류가 발생하거나 요금이 부과될 수 있습니다.
  2. 약관에 동의하고 리소스 복구 페이지를 건너뜁니다.
  3. 실습을 완료했거나 다시 시작하려고 하는 경우가 아니면 실습 종료를 클릭하지 마세요. 이 버튼을 클릭하면 작업 내용이 지워지고 프로젝트가 삭제됩니다.

현재 이 콘텐츠를 이용할 수 없습니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

감사합니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

한 번에 실습 1개만 가능

모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.

시크릿 브라우징을 사용하여 실습 실행하기

이 실습을 실행하려면 시크릿 모드 또는 시크릿 브라우저 창을 사용하세요. 개인 계정과 학생 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.