중요합니다
Lakebase 자동 크기 조정은 다음 지역의 베타에 있습니다. eastus2westeuropewestus
Lakebase 자동 크기 조정은 자동 크기 조정 컴퓨팅, 0으로 크기 조정, 분기 및 즉시 복원이 포함된 최신 버전의 Lakebase입니다. Lakebase 프로비저닝된 기능 비교는 버전 중에서 선택하는 것을 참조하세요.
Lakebase 프로젝트 및 데이터베이스에 액세스할 수 있는 새 사용자를 설정하는 방법을 알아봅니다. 이 자습서에서는 프로젝트 수준 권한(Lakebase 리소스 관리용) 및 데이터베이스 수준 권한(Postgres를 통해 데이터에 액세스하기 위한)을 모두 다룹니다.
두 권한 시스템 정보
Lakebase Postgres는 두 가지 권한 계층을 사용합니다.
ACL(프로젝트 권한): 분기 만들기, 컴퓨팅 관리 및 프로젝트 설정 관리와 같은 플랫폼 수준 작업을 제어합니다. 이러한 항목은 Lakebase 앱을 통해 관리됩니다.
Postgres 역할 권한: 데이터베이스 자체 내에서 데이터에 대한 액세스를 제어합니다. 이들은 표준 Postgres
GRANT명령을 통해 관리됩니다.
이러한 시스템에는 자동 동기화가 없습니다. 조직의 요구 사항에 따라 이러한 권한을 독립적으로 또는 함께 부여할 수 있습니다.
- 플랫폼 액세스 및 데이터베이스 액세스가 필요한 사용자에게 두 계층을 모두 부여합니다.
- 인프라를 관리하지만 데이터를 쿼리할 필요가 없는 사용자에게 프로젝트 권한만 부여합니다.
- 데이터를 쿼리해야 하지만 Lakebase 리소스를 관리할 필요가 없는 사용자에게 데이터베이스 액세스 권한만 부여합니다(연결 세부 정보와 같은
psql도구를 사용하여 연결할 수 있습니다).
이 자습서에서는 두 액세스 계층을 모두 설정하는 방법을 보여 줍니다.
- 사용자가 Lakebase 플랫폼 리소스를 사용할 수 있도록 프로젝트 권한 부여(이 자습서에서는 모든 액세스에 CAN MANAGE를 사용하고 보기 및 사용 전용 액세스에 대해 CAN USE를 부여할 수도 있습니다).
- 데이터베이스에 연결하고 쿼리하기 위한 적절한 데이터베이스 권한으로 Postgres 역할 만들기
기본 권한
모든 작업 영역 사용자는 기본적으로 프로젝트를 보고 만들 수 있는 CAN CREATE 권한을 상속합니다. 프로젝트의 리소스 및 데이터베이스에 대한 추가 액세스 권한을 부여하려면 CAN USE 또는 CAN MANAGE를 명시적으로 할당해야 합니다.
필수 조건
- 데이터베이스가 있는 Lakebase 프로젝트
- 작업 영역 관리자 또는 프로젝트에 대한 "CAN MANAGE" 권한
- 프로젝트를 만든 동일한 작업 영역에 있는 사용자의 Azure Databricks ID(이메일 주소)
시나리오: 읽기/쓰기 액세스 권한이 있는 데이터 분석가 추가
필요한 데이터 분석가 Alex Lopez 를 추가하는 단계를 살펴보겠습니다.
- 브랜치, 컴퓨팅 자원 및 데이터베이스를 생성하고 관리하는 기능(CAN MANAGE)
- Postgres 데이터베이스의 스키마에
public있는 테이블에 대한 읽기 및 쓰기 권한 - 분석을 위해 새 테이블을 만드는 기능
1단계: 프로젝트 권한 부여
먼저 사용자에게 프로젝트 관리 작업을 수행할 수 있도록 CAN MANAGE 권한을 부여합니다.
- Lakebase 앱에서 프로젝트로 이동합니다.
- 왼쪽 사이드바에서 설정을 클릭합니다.
- 프로젝트 권한 섹션으로 스크롤합니다.
- 권한 부여를 클릭합니다.
- 사용자를 검색하고 선택합니다.
- CAN MANAGE 권한을 선택합니다.
- Grant를 클릭합니다.
CAN MANAGE에서 허용하는 것은 다음과 같습니다.
- 분기 만들기 및 삭제
- 컴퓨팅 관리 및 프로젝트 설정 구성
- 데이터베이스 및 Postgres 역할 만들기 및 관리
- 프로젝트 작업에 대한 모든 권한
비고
CAN MANAGE는 다른 많은 작업을 포함하여 프로젝트에 대한 모든 권한을 부여합니다. CAN USE 를 사용하면 전체 관리 없이 리소스(목록, 보기, 연결 URI 및 특정 분기 작업 가져오기)를 보고 사용할 수 있습니다. 각 권한 수준 및 각 권한에서 허용하는 특정 작업의 전체 목록은 Lakebase 프로젝트 ACL을 참조하세요.
2단계: 사용자에 대한 Postgres 역할 만들기
이제 Alex가 OAuth 토큰과 함께 Azure Databricks ID를 사용하여 인증할 수 있도록 하는 OAuth 역할을 만듭니다. 프로젝트 소유자는 역할을 만드는 데 필요한 권한이 있습니다.
Lakebase SQL 편집기를 열고 프로젝트에 연결합니다.
확장을 만듭니다
databricks_auth(아직 사용하도록 설정되지 않은 경우).CREATE EXTENSION IF NOT EXISTS databricks_auth;함수를
databricks_create_role사용하여 Alex에 대한 OAuth Postgres 역할을 만듭니다.SELECT databricks_create_role('alex.lopez@databricks.com', 'USER');
그러면 다음과 같은 OAuth 역할이 만들어집니다.
- Azure Databricks ID와 동일한 이름을 사용합니다
alex.lopez@databricks.com. - OAuth 토큰을 사용하여 인증할 수 있습니다.
- LOGIN 권한 사용
- 아직 데이터베이스 권한이 없습니다(다음으로 부여하겠습니다).
비고
OAuth 역할 정보:
- OAuth 역할은 시간 제한 토큰을 사용하여 인증합니다(1시간 후에 만료됨).
- 사용자가 Lakebase 앱 연결 대화 상자에서 토큰을 가져옵니다.
- 대화형 세션 및 작업 영역 통합 워크플로에 가장 적합합니다.
- 자세한 내용은 인증 정보를 참조하세요.
3단계: Postgres 데이터베이스 권한 부여
이제 Alex에게 필요한 데이터베이스 권한을 부여합니다. 그들에게 public 스키마에 대한 읽기-쓰기 액세스 권한을 부여합니다.
-- Grant CONNECT permission on the database
GRANT CONNECT ON DATABASE databricks_postgres TO "alex.lopez@databricks.com";
-- Grant USAGE permission on the public schema (required to access objects in it)
GRANT USAGE ON SCHEMA public TO "alex.lopez@databricks.com";
-- Grant CREATE permission on the public schema (allows creating new tables)
GRANT CREATE ON SCHEMA public TO "alex.lopez@databricks.com";
-- Grant read-write access to all existing tables in public schema
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO "alex.lopez@databricks.com";
-- Grant permissions on future tables (so Alex can access new tables automatically)
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO "alex.lopez@databricks.com";
-- Grant permission to use sequences (needed for SERIAL columns)
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO "alex.lopez@databricks.com";
-- Grant permissions on future sequences
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT USAGE, SELECT ON SEQUENCES TO "alex.lopez@databricks.com";
이러한 사용 권한에서 허용하는 사항:
-
CONNECT: 데이터베이스에 연결 -
USAGE스키마에서: 스키마 내 객체에 접근합니다 -
CREATE스키마: 새 테이블, 뷰, 함수 만들기 -
SELECT, INSERT, UPDATE, DELETE테이블에서 데이터 읽기 및 쓰기 - 시퀀스 권한: 자동 증가 열 사용
4단계: 연결 테스트
Alex가 데이터베이스에 연결하고 액세스할 수 있는지 확인해 주세요.
Lakebase SQL 편집기 사용:
Alex가 Lakebase 앱을 열고 프로젝트로 이동합니다.
Alex가 Lakebase SQL 편집기를 엽니다.
SQL 편집기에서 Alex는 다음 쿼리를 실행하여 사용 권한을 확인할 수 있어야 합니다.
-- Check role memberships SELECT rolname FROM pg_roles WHERE rolname = 'alex.lopez@databricks.com'; -- Verify can read data SELECT * FROM your_table LIMIT 5; -- Verify can write data INSERT INTO your_table (column1, column2) VALUES ('test', 'value'); -- Verify can create tables CREATE TABLE alex_analysis ( id SERIAL PRIMARY KEY, notes TEXT, created_at TIMESTAMP DEFAULT NOW() );
또는 psql을 사용합니다.
Alex는 다음과 같은 psql외부 도구에서 연결할 수도 있습니다.
- 프로젝트 대시보드에서 연결을 클릭합니다.
- 분기, 컴퓨팅 및 데이터베이스를 선택합니다.
-
역할 드롭다운에서
alex.lopez@databricks.com을 선택합니다. -
psql연결 조각을 복사합니다. - OAuth 토큰 복사를 클릭하여 인증 토큰을 가져옵니다.
- 복사한
psql명령을 사용하여 연결하고 암호를 입력하라는 메시지가 표시되면 OAuth 토큰을 입력합니다. - 위에 표시된 것과 동일한 확인 쿼리를 실행합니다.
대안: 읽기 전용 데이터베이스 액세스
데이터를 수정하지 않고만 쿼리해야 하는 사용자의 경우 동일한 프로젝트 권한을 부여하지만 더 제한적인 데이터베이스 권한을 사용합니다.
프로젝트 권한
보기 및 사용 전용 프로젝트 액세스(예: 연결 URI, 목록 분기)에 대해 CAN USE 를 부여합니다. GRANT CAN MANAGE 를 사용하여 데이터베이스, 역할 및 기타 프로젝트 작업을 만들 수 있습니다.
데이터베이스 사용 권한
-- Create OAuth role
SELECT databricks_create_role('analyst@databricks.com', 'USER');
-- Grant CONNECT permission
GRANT CONNECT ON DATABASE databricks_postgres TO "analyst@databricks.com";
-- Grant USAGE on the public schema
GRANT USAGE ON SCHEMA public TO "analyst@databricks.com";
-- Grant SELECT-only access to all existing tables
GRANT SELECT ON ALL TABLES IN SCHEMA public TO "analyst@databricks.com";
-- Grant SELECT-only access to future tables
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT ON TABLES TO "analyst@databricks.com";
-- Grant USAGE on sequences (needed to view sequence values)
GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO "analyst@databricks.com";
이 권한은 다음과 같습니다.
- 모든 테이블에 대한 읽기 권한
- 데이터베이스 구조 보기
- 데이터를 수정할 수 없음(아니요 INSERT, UPDATEDELETE)
- 테이블 또는 다른 개체를 만들 수 없음
그룹 및 서비스 프린시펄과 작업하기
동일한 프로세스를 따라 Azure Databricks 그룹 및 서비스 주체에 대한 액세스 권한을 부여할 수 있습니다. Lakebase 앱 UI를 통해 프로젝트 권한을 부여하고, databricks_create_role()을(를) 사용하여 OAuth 역할을 만들며, 데이터베이스 권한을 부여합니다. 자세한 내용은 그룹 및 서비스 주체를 참조하세요.
네이티브 Postgres 암호 역할 사용
OAuth 역할 대신 매시간 토큰, 장기 실행 프로세스 또는 OAuth를 지원하지 않는 외부 도구를 새로 고칠 수 없는 애플리케이션에 대한 네이티브 Postgres 암호 역할을 만들 수 있습니다. 암호 역할을 만들고 관리하는 방법에 대한 지침은 Postgres 역할 관리를 참조하세요.