이 페이지에서는 세분화된 액세스 제어 사용자가 Spanner 데이터베이스에 액세스하는 방법을 설명합니다.
세분화된 액세스 제어에 대한 자세한 내용은 세분화된 액세스 제어 정보를 참조하세요.
세분화된 액세스 제어 사용자는 SQL 문 및 쿼리를 실행하고 데이터베이스에서 행 작업을 수행하는 데 사용할 데이터베이스 역할을 선택해야 합니다. 선택한 역할은 역할을 변경할 때까지 세션 동안 유지됩니다.
쿼리, DML 또는 행 작업을 제출하면 Spanner가 다음 규칙을 사용하여 승인을 확인합니다.
- Google Cloud 콘솔
Spanner는 먼저 데이터베이스 수준 IAM 권한이 있는지 확인합니다. 권한이 있으면 Google Cloud 콘솔에 데이터베이스 역할 선택기가 표시되지 않고 세션이 데이터베이스 수준 권한으로 진행됩니다.
세분화된 액세스 제어 권한만 있고 IAM 데이터베이스 수준 권한은 없는 경우
spanner_sys_reader
시스템 역할 또는 해당 구성원 역할 중 하나에 대한 액세스 권한을 부여 받아야 합니다. Google Cloud 콘솔 세션이 필요한 권한으로 진행되도록 데이터베이스 개요 페이지에서 역할을 선택합니다.
- Google Cloud SDK
쿼리, DML 또는 행 작업을 제출할 때 데이터베이스 역할을 지정하면 Spanner에서 세분화된 액세스 제어 권한을 확인합니다. 확인에 실패하면 Spanner가 데이터베이스 수준 IAM 권한을 확인하지 않고 작업이 실패합니다.
데이터베이스 역할을 지정하지 않으면 Spanner가 데이터베이스 수준 IAM 권한을 확인하고 확인에 성공하면 세션이 데이터베이스 수준 권한으로 진행됩니다.
Spanner 데이터베이스에 액세스할 때 데이터베이스 역할을 지정하려면 다음 방법을 사용합니다.
콘솔
데이터베이스를 선택한 후 데이터베이스의개요 페이지에서 현재 역할 필드 옆에 있는 데이터베이스 역할 변경(연필) 아이콘을 클릭합니다.
기본적으로 세분화된 액세스 제어 사용자가 로그인할 때 이 필드의 값은
public
입니다.public
시스템 역할에 대한 자세한 내용은 세분화된 액세스 제어 시스템 역할을 참조하세요.데이터베이스 역할 변경 대화상자의 사용 가능한 역할 목록에서 다른 역할을 선택합니다.
업데이트를 클릭합니다.
현재 역할 필드에 새 역할이 표시됩니다.
gcloud
다음과 같이
--database-role
옵션을gcloud spanner databases execute-sql
명령어에 추가합니다.gcloud spanner databases execute-sql DATABASE_NAME \ --instance=INSTANCE_NAME \ --sql="SELECT * from TABLE_NAME;" \ --database-role=ROLE_NAME
클라이언트 라이브러리
C++
C#
Go
자바
Node.js
PHP
Python
Ruby