Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Lakebase projenize ve veritabanınıza erişimi olan yeni bir kullanıcı ayarlamayı öğrenin. Bu öğreticide hem proje düzeyindeki izinler (Lakebase kaynaklarını yönetmek için) hem de veritabanı düzeyinde izinler (Postgres aracılığıyla verilere erişmek için) yer alınmaktadır.
İki izin sistemi hakkında
Lakebase Postgres iki izin katmanı kullanır:
Proje izinleri (ACL'ler):Dal oluşturma, işlemleri yönetme ve proje ayarlarını yönetme gibi platform düzeyindeki eylemleri denetleyin. Bunlar Lakebase Uygulaması aracılığıyla yönetilir.
Postgres rol izinleri: Veritabanının içindeki verilere erişimi denetleyin. Bunlar standart Postgres
GRANTkomutları aracılığıyla yönetilir.
Bu sistemlerin otomatik eşitlemesi yoktur. Kuruluşunuzun gereksinimlerine bağlı olarak bu izinleri bağımsız olarak veya birlikte vekleyebilirsiniz:
- Platform erişimine ve veritabanı erişimine ihtiyacı olan kullanıcılara her iki katmanı da verin.
- Altyapıyı yöneten ancak verileri sorgulaması gerekmeyen kullanıcılara yalnızca proje izinleri verin.
- Yalnızca verileri sorgulaması gereken ancak Lakebase kaynaklarını yönetmesi gerekmeyen kullanıcılara veritabanı erişimi verin (bağlantı ayrıntıları gibi
psqlaraçları kullanarak bağlanabilirler).
Bu öğreticide her iki erişim katmanının nasıl ayarlanacağı gösterilmektedir:
- Kullanıcıların Lakebase platform kaynaklarıyla çalışabilmesi için proje izinleri verin (bu öğreticide tam erişim için CAN MANAGE kullanılır ve yalnızca görüntüleme erişimi için CAN USE izni de verilmektedir)
- Veritabanına bağlanmak ve veritabanını sorgulamak için uygun veritabanı ayrıcalıklarına sahip bir Postgres rolü oluşturma
Varsayılan izinler
Tüm çalışma alanı kullanıcıları, projeleri görüntülemeye ve oluşturmaya izin veren CAN CREATE iznini varsayılan olarak devralır. Projenizin kaynaklarına ve veritabanlarına ek erişim vermek için CAN USE veya CAN MANAGE atamanız gerekir.
Önkoşullar
- Veritabanı olan bir Lakebase projesi
- Çalışma alanı yöneticisi veya proje üzerinde YÖNETEBİLİR izni
- Projenin oluşturulduğu çalışma alanında kullanıcının Azure Databricks kimliği (e-posta adresi)
Senaryo: Okuma-yazma erişimiyle veri analisti ekleme
Alex Lopez adında ve ihtiyaçları olan bir veri analistini ekleme adımlarını inceleyelim.
- Dalları, hesaplamaları ve veritabanlarını oluşturma ve yönetme yeteneği (YÖNETEBİLİR)
- Postgres veritabanınızın şemasındaki tablolara
publicokuma ve yazma erişimi - Analiz için yeni tablolar oluşturma olanağı
1. Adım: Proje izinleri verme
Öncelikle, kullanıcıya proje yönetimi eylemleri yapabilmesi için YÖNETEBİLİR izni verin.
- Lakebase Uygulamasında projenize gidin.
- Sol kenar çubuğunda Ayarlar'a tıklayın.
- Project izinleri bölümüne kaydırın.
- İzin ver'e tıklayın.
- Kullanıcıyı arayın ve seçin.
- yönetebilir izni'ne tıklayın.
- İzin Ver'e tıklayın.
YÖNETİLEMİ NELERE olanak tanır:
- Dal oluşturma ve silme
- İşlemleri yönetme ve proje ayarlarını yapılandırma
- Veritabanlarını ve Postgres rollerini oluşturma ve yönetme
- Proje işlemleri üzerinde tam denetim
Uyarı
CAN MANAGE, diğer birçok eylem de dahil olmak üzere proje üzerinde tam denetim sağlar. CAN USE , tam yönetim olmadan kaynakları görüntülemeye ve kullanmaya (liste, görüntüleme, bağlantı URI'sini alma ve belirli dal işlemlerini) sağlar. Tüm izin düzeylerinin ve her birinin izin verdiği belirli eylemlerin tam listesi için bkz. Lakebase proje ACL'leri.
2. Adım: Kullanıcı için Postgres rolü oluşturma
Şimdi Alex'in OAuth belirteçleriyle Azure Databricks kimliğini kullanarak kimlik doğrulaması yapmasına olanak tanıyan bir OAuth rolü oluşturun. Proje sahibi olarak rol oluşturmak için gerekli izinlere sahipsiniz.
Lakebase SQL Düzenleyicisi'ni açın ve projenize bağlanın.
Uzantıyı
databricks_autholuşturun (henüz etkinleştirilmemişse):CREATE EXTENSION IF NOT EXISTS databricks_auth;databricks_create_roleAlex için OAuth Postgres rolünü oluşturmak için işlevini kullanın:SELECT databricks_create_role('alex.lopez@databricks.com', 'USER');
Bu, şu şekilde bir OAuth rolü oluşturur:
- Azure Databricks kimlikleriyle aynı ada sahiptir (
alex.lopez@databricks.com) - OAuth belirteçlerini kullanarak kimlik doğrulaması yapabilir
- LOGIN ayrıcalıklarına sahiptir
- Henüz veritabanı izni yok (bunları bir sonraki adımda vereceğiz)
Uyarı
OAuth roller hakkında:
- OAuth rolleri zaman sınırlı belirteçler kullanarak kimlik doğrulaması yapar (süresi 1 saat sonra dolar)
- Kullanıcılar Lakebase Uygulama bağlantısı iletişim kutusundan belirteçler alır
- Etkileşimli oturumlar ve çalışma alanıyla tümleşik iş akışları için en iyi yöntem
- Daha fazla bilgi için bkz. Kimlik doğrulaması hakkında
3. Adım: Postgres veritabanı izinleri verme
Şimdi Alex'e ihtiyaç duydukları veritabanı izinlerini verin. Onlara şemaya public okuma-yazma erişimi vereceğiz.
-- 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";
Bu izinler nelere izin verir:
-
CONNECT: Veritabanına bağlanma -
USAGEşemada: Şema içindeki nesnelere erişme -
CREATEşemada: Yeni tablolar, görünümler, işlevler oluşturma -
SELECT, INSERT, UPDATE, DELETEtablolarda: Verileri okuma ve yazma - Sıra izinleri: Otomatik artan sütunları kullanma
4. Adım: Bağlantıyı test edin
Alex'in veritabanına bağlanıp veritabanına erişebildiklerini doğrulamasını sağlayın.
Lakebase SQL Düzenleyicisi'ni kullanma:
Alex, Lakebase Uygulamasını açar ve projenize gider.
Alex, Lakebase SQL Düzenleyicisi'ni açar.
SQL Düzenleyicisi'nde Alex'in izinleri doğrulamak için aşağıdaki sorguları çalıştırabilmesi gerekir:
-- 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() );
Alternatif olarak, psql kullanarak:
Alex ayrıca gibi psqldış araçlardan bağlanabilir:
- Proje panosunda Bağlan'a tıklayın.
- Dalı, işlem ve veritabanını seçin.
-
Roller açılır listesinden bir
alex.lopez@databricks.comseçin. -
psqlbağlantı kodunu kopyalayın. - Kimlik doğrulama belirtecini almak için OAuth Belirtecini Kopyala'ya tıklayın.
- Kopyalanan
psqlkomutu kullanarak bağlanın ve parola istendiğinde OAuth belirtecini girin. - Yukarıda gösterilen doğrulama sorgularının aynısını çalıştırın.
Alternatif: Salt okunur veritabanı erişimi
Verileri değiştirmeden sorgulaması gereken kullanıcılar için aynı proje izinlerini verin ancak daha kısıtlayıcı veritabanı izinleri kullanın:
Proje izinleri
Yalnızca görüntüleme ve kullanım amaçlı proje erişimi sağlamak için CAN USE izni ver (ör. bağlantı URI'si, dal listesini görüntüle). "CAN MANAGE iznini vererek veritabanları, roller ve diğer proje işlemlerini oluşturma yetkisi tanıyın."
Veritabanı izinleri
-- 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";
Bu, şu izinleri verir:
- Tüm tablolara okuma erişimi
- Veritabanı yapısını görüntüleme
- Veriler değiştirilemez (hayır INSERT, UPDATE, DELETE)
- Tablolar veya diğer nesneler oluşturulamıyor
Gruplar ve hizmet sorumlularıyla çalışma
Azure Databricks gruplarına ve hizmet sorumlularına erişim vermek için aynı işlemi izleyebilirsiniz. Lakebase Uygulama kullanıcı arabirimi aracılığıyla proje izinleri verin, kullanarak databricks_create_role()OAuth rolleri oluşturun ve veritabanı izinleri verin. Daha fazla bilgi için bkz . Gruplar ve Hizmet sorumluları.
Yerel Postgres parola rollerini kullanma
OAuth rollerine alternatif olarak, belirteçleri saatlik olarak yenileyemeyen uygulamalar, uzun süreli çalışan işlemler veya OAuth'u desteklemeyen dış araçlar için yerel Postgres parola rolleri oluşturabilirsiniz. Parola rolleri oluşturma ve yönetme yönergeleri için bkz. Postgres rollerini yönetme.