Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Lakebase Autoscaling berada di Beta di wilayah berikut: eastus2, , westeuropewestus.
Lakebase Autoscaling adalah versi terbaru Lakebase dengan komputasi penskalaan otomatis, skala-ke-nol, percabangan, dan pemulihan instan. Untuk perbandingan fitur dengan Lakebase Provisioned, lihat memilih antar versi.
Pelajari cara menyiapkan pengguna baru dengan akses ke proyek dan database Lakebase Anda. Tutorial ini mencakup izin tingkat proyek (untuk mengelola sumber daya Lakebase) dan izin tingkat database (untuk mengakses data melalui Postgres).
Tentang dua sistem izin
Lakebase Postgres menggunakan dua lapisan izin:
Izin proyek (ACL): Mengontrol tindakan tingkat platform, seperti membuat cabang, mengelola komputasi, dan mengelola pengaturan proyek. Ini dikelola melalui Aplikasi Lakebase.
Izin peran Postgres: Mengontrol akses ke data dalam database itu sendiri. Ini dikelola melalui perintah Postgres
GRANTstandar.
Sistem ini tidak memiliki sinkronisasi otomatis. Anda dapat memberikan izin ini secara independen atau bersama-sama, tergantung pada persyaratan organisasi Anda:
- Berikan kedua lapisan kepada pengguna yang membutuhkan akses platform dan akses database.
- Hanya berikan izin proyek kepada pengguna yang mengelola infrastruktur tetapi tidak perlu mengkueri data.
- Hanya berikan akses database kepada pengguna yang perlu mengkueri data tetapi tidak perlu mengelola sumber daya Lakebase (mereka dapat terhubung menggunakan alat seperti
psqldengan detail koneksi).
Tutorial ini menunjukkan cara menyiapkan kedua lapisan akses:
- Memberikan izin proyek sehingga pengguna dapat bekerja dengan sumber daya platform Lakebase (tutorial ini menggunakan CAN MANAGE untuk akses penuh, dan Anda juga dapat memberikan CAN USE untuk akses lihat-dan-gunakan-saja)
- Buat role Postgres dengan hak istimewa database yang sesuai untuk menyambungkan dan melakukan kueri pada database
Izin bawaan
Semua pengguna ruang kerja mewarisi izin CREATE CAN secara default, yang memungkinkan menampilkan dan membuat proyek. Untuk memberikan akses tambahan ke sumber daya dan database proyek, Anda harus secara eksplisit menetapkan CAN USE atau CAN MANAGE.
Prasyarat
- Proyek Lakebase dengan database
- Admin ruang kerja atau izin CAN MANAGE pada proyek
- Identitas Azure Databricks pengguna (alamat email) di dalam ruang kerja yang sama dengan tempat pembuatan proyek
Skenario: Menambahkan analis data dengan akses baca-tulis
Mari kita lihat bagaimana menambahkan seorang analis data bernama Alex Lopez, yang membutuhkan:
- Kemampuan untuk membuat dan mengelola cabang, komputasi, dan database (DAPAT MENGELOLA)
- Membaca dan menulis akses ke tabel dalam
publicskema database Postgres Anda - Kemampuan untuk membuat tabel baru untuk analisis
Langkah 1: Memberikan izin proyek
Pertama, berikan izin CAN MANAGE kepada pengguna sehingga mereka dapat mengelola proyek.
- Navigasikan ke proyek Anda di Aplikasi Lakebase.
- Klik Pengaturan di bilah sisi kiri.
- Gulir ke bagian Izin proyek .
- Klik Beri izin.
- Cari dan pilih pengguna.
- Pilih DAPAT MENGELOLA izin.
- Klik pada Berikan.
Apa yang DAPAT MENGELOLA memungkinkan:
- Membuat dan menghapus cabang
- Mengelola komputasi dan mengonfigurasi pengaturan proyek
- Membuat dan mengelola database dan peran Postgres
- Kontrol penuh atas operasi proyek
Nota
CAN MANAGE memberikan kontrol penuh atas proyek, termasuk banyak tindakan lainnya. CAN USE memungkinkan melihat dan menggunakan sumber daya (daftar, melihat, mendapatkan URI koneksi, dan operasi cabang tertentu) tanpa manajemen penuh. Untuk daftar lengkap semua tingkat izin dan tindakan tertentu yang masing-masing memungkinkan, lihat ACL proyek Lakebase.
Langkah 2: Membuat peran Postgres untuk pengguna
Sekarang buat peran OAuth yang memungkinkan Alex mengautentikasi menggunakan identitas Azure Databricks mereka dengan token OAuth. Sebagai pemilik proyek, Anda memiliki izin yang diperlukan untuk membuat peran.
Buka Editor SQL Lakebase dan sambungkan ke proyek Anda.
databricks_authBuat ekstensi (jika belum diaktifkan):CREATE EXTENSION IF NOT EXISTS databricks_auth;databricks_create_roleGunakan fungsi untuk membuat peran OAuth Postgres untuk Alex:SELECT databricks_create_role('alex.lopez@databricks.com', 'USER');
Ini membuat peran OAuth dengan fungsi sebagai:
- Memiliki nama yang sama dengan identitas Azure Databricks mereka (
alex.lopez@databricks.com) - Dapat mengautentikasi menggunakan token OAuth
- Memiliki hak istimewa LOGIN
- Belum memiliki izin database (kami akan memberikan ini berikutnya)
Nota
Tentang peran OAuth:
- Peran OAuth mengautentikasi menggunakan token terbatas waktu (kedaluwarsa setelah 1 jam)
- Pengguna mendapatkan token dari dialog koneksi Aplikasi Lakebase
- Terbaik untuk sesi interaktif dan alur kerja terintegrasi ruang kerja
- Untuk informasi selengkapnya, lihat Tentang autentikasi
Langkah 3: Memberikan izin database Postgres
Sekarang berikan Alex izin database yang mereka butuhkan. Kami akan memberi mereka akses baca-tulis ke public skema.
-- 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";
Apa yang diizinkan oleh izin ini:
-
CONNECT: Menyambungkan ke database -
USAGEpada skema: Mengakses objek dalam skema -
CREATEpada skema: Membuat tabel, tampilan, fungsi baru -
SELECT, INSERT, UPDATE, DELETEpada tabel: Membaca dan menulis data - Izin urutan: Gunakan kolom penaikan otomatis
Langkah 4: Uji koneksi
Minta Alex memverifikasi bahwa mereka dapat menyambungkan dan mengakses database.
Menggunakan Editor Lakebase SQL:
Alex membuka Aplikasi Lakebase dan menavigasi ke proyek Anda.
Alex membuka Editor Lakebase SQL.
Di Editor SQL, Alex harus dapat menjalankan kueri berikut untuk memverifikasi izin:
-- 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() );
Atau, menggunakan psql:
Alex juga dapat terhubung dari alat eksternal seperti psql:
- Dari dasbor proyek, klik Sambungkan.
- Pilih cabang, komputasi, dan database.
- Dari menu dropdown Peran , pilih
alex.lopez@databricks.com. - Salin cuplikan koneksi
psql. - Klik Salin Token OAuth untuk mendapatkan token autentikasi.
- Sambungkan menggunakan perintah yang disalin
psqldan masukkan token OAuth saat dimintai kata sandi. - Jalankan kueri verifikasi yang sama yang ditunjukkan di atas.
Alternatif: Akses database hanya baca
Untuk pengguna yang hanya perlu mengkueri data tanpa memodifikasinya, berikan izin proyek yang sama tetapi gunakan izin database yang lebih ketat:
Izin proyek
Berikan CAN USE untuk akses proyek view-and-use-only (misalnya URI koneksi, cabang daftar). Berikan CAN MANAGE untuk memungkinkan pembuatan database, peran, dan operasi proyek lainnya.
Hak Akses Database
-- 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";
Ini memberikan:
- Akses baca ke semua tabel
- Menampilkan struktur database
- Tidak dapat mengubah data (tidak ada INSERT, UPDATE, DELETE)
- Tidak dapat membuat tabel atau objek lain
Bekerja dengan grup dan prinsipal layanan
Anda dapat mengikuti proses yang sama untuk memberikan akses ke grup Azure Databricks dan perwakilan layanan. Berikan izin proyek melalui UI Aplikasi Lakebase, buat peran OAuth menggunakan databricks_create_role(), dan berikan izin database. Untuk informasi selengkapnya, lihat Grup dan Perwakilan layanan.
Menggunakan peran kata sandi Postgres asli
Sebagai alternatif untuk peran OAuth, Anda dapat membuat peran kata sandi Postgres asli untuk aplikasi yang tidak dapat menyegarkan token per jam, proses jangka panjang, atau alat eksternal yang tidak mendukung OAuth. Untuk petunjuk tentang membuat dan mengelola peran kata sandi, lihat Mengelola peran Postgres.