Ana içeriğe geç

Veri Sandbox'ları

Veri sandboxları, farklı kişi grupları için satırlara ve sütunlara ayrıntılı izinler vermenizi sağlar. Bir grubun hangi verileri görüntüleyebileceğini ve sorgu oluşturucu ile hangi verileri sorgulayabileceğini sandbox'a alabilirsiniz.

Her müşterinizin yalnızca kendi müşteri kimliğiyle eşleşen satırları görüntülemesi için self servis analitiği kurmak için sandboxları kullanabilirsiniz. Örneğin, müşterileriniz hakkında bilgi içeren bir Hesaplar tablonuz varsa, her müşterinin yalnızca kendisiyle ilgili verileri görmesi için bu tabloyu sandbox'a alabilirsiniz.

Veri sandbox örnekleri

Teoriyi atlayıp doğrudan sandbox örneklerine gidebilirsiniz.

sandboxları nasıl çalışır?

Bir veri sandbox'unu aşağıdaki öğeleri içeren bir izin paketi olarak düşünebilirsiniz:

  • Orijinal tablonuzun Patrona'da kullanıldığı her yerde, orijinal tablonun yerini alacak filtrelenmiş bir sürümü.
  • Tablonun filtrelenmiş sürümünü görmesi gereken kişilerin grubu.

Patrona'nızda her tablo/grup kombinasyonu için en fazla bir veri sandbox tanımlayabilirsiniz. Bu, satış elemanlarınıza "Satış için sandbox'a Alınmış Hesaplar" ve satış yöneticileri için "Yöneticiler için sandbox'a Alınmış Hesaplar" gibi farklı gruplar için bir tablonun farklı sürümlerini görüntüleyebileceğiniz anlamına gelir.

Veri sandbox türleri

Veri sandboxları, her kişiye kullanıcı özelliklerine göre belirli verileri gösterir. Şunları yapabilirsiniz:

  • Temel bir sandbox ile belirli kişiler için satırları kısıtlayın.
  • Özel bir sandbox (gelişmiş bir sandbox olarak da bilinir) ile belirli kişiler için sütunları (ve ayrıca satırları) kısıtlayın.
Temel sandbox (tablodaki bir sütuna göre filtrele)Özel sandbox (kaydedilmiş bir SQL sorusu kullanın)
Tek bir sütunda filtreleyerek satırları kısıtla
Birden çok sütunda filtreleyerek satırları kısıtla
Sütunları kısıtla
Sütunları düzenle

Temel veri sandboxları: tablodaki bir sütuna göre filtrele

Satırları kısıtlamak için temel bir sandbox kullanın. Temel bir sandbox, bir gruba orijinal tablo yerine filtrelenmiş bir tablo sürümü görüntüler. Filtre, tablodaki bir sütunu belirli bir kullanıcı öznitelik değerine ayarlayarak çalışır.

Örneğin, bir grup için Hesaplar tablosunu filtrelemek üzere temel bir sandbox oluşturabilirsiniz, böylece:

  • "Temel" kullanıcı öznitelik değerine sahip bir kişi, Plan = "Temel" olan satırları görecektir (Plan sütununun "Temel" değeriyle eşleştiği satırlar).
  • "Premium" kullanıcı öznitelik değerine sahip bir kişi, Plan = "Premium" olan satırları görecektir (Plan sütununun "Premium" değeriyle eşleştiği satırlar).

Özel veri sandboxları: bir tablonun özel bir görünümünü oluşturmak için kaydedilmiş bir soruyu kullanın

Sütunları ve ayrıca satırları kısıtlamak için özel bir sandbox (gelişmiş bir sandbox olarak da bilinir) kullanın. Özel bir sandbox, orijinal tablonuzun yerine kaydedilmiş bir SQL sorusunun sonuçlarını görüntüler.

Örneğin, orijinal Hesaplar tablonuzda şu sütunlar bulunduğunu varsayalım: ID, Email, Plan ve Created At. E-posta sütununu gizlemek istiyorsanız, şu sütunlara sahip bir "sandbox'a Alınmış Hesaplar" SQL sorusu oluşturabilirsiniz: ID, Plan ve Created At.

Özel bir sandbox, Patrona'da Hesaplar'ın kullanıldığı her yerde, belirli bir gruba orijinal Hesaplar tablosu yerine "sandbox'a Alınmış Hesaplar" sorusunun sonucunu gösterecektir.

Ayrıca özel bir sandbox'unu şunlar için de kullanabilirsiniz:

Sınırlamalar

Bir sandbox'da iyi çalışmayan şeyler.

Yerel sorgu izinlerine sahip gruplar (SQL düzenleyicisine erişim) sandbox'a alınamaz

sandbox'a alınmış gruplar için sorgu oluşturucu ve yerel ayarlayamazsınız.

Yerel sorgu düzenleyicisiyle satır düzeyinde izinleri uygulamak için kimliğe bürünmeyi inceleyin.

SQL soruları sandbox'a alınamaz

Patrona SQL sorgularını ayrıştıramadığından, SQL sorularının sonuçları her zaman sandbox'a alınmış tablolar yerine orijinal tabloları kullanır.

Kısıtlanmış verilere sahip kaydedilmiş SQL sorularını sandbox'a alınmış grupların görüntülemesini engellemek için koleksiyon izinlerini kullanın.

SQL olmayan veritabanları sandbox'a alınamaz

Veri sandbox izinleri, Apache Druid veya MongoDB gibi SQL olmayan veritabanları için kullanılamaz.

Temel sandboxları için ön koşullar

Temel bir sandbox, belirli bir gruba orijinal tablo yerine filtrelenmiş bir tablo görüntüler. Patrona'nın bu tabloyu nasıl filtrelediği, her kişinin kullanıcı özniteliğindeki değere bağlıdır.

Örneğin, temel bir sandbox'unu şu şekilde ayarlayabilirsiniz:

  • "plan" anahtarına ve "Temel" değerine sahip kullanıcı özniteliğine sahip biri, Plan = "Temel" filtresiyle Hesaplar tablosunun bir sürümünü görecektir (yani, yalnızca Plan sütununun "Temel" değeriyle eşleştiği satırlar).
  • "plan" kullanıcı özniteliği "Premium" olarak ayarlanmış biri, uygulanan Plan = "Premium" filtresiyle Hesaplar tablosunun farklı bir sürümünü görecektir.

Veri sandboxları için kullanıcı öznitelikleri seçme

Kullanıcı öznitelikleri temel sandboxları için gereklidir ve özel sandboxları için isteğe bağlıdır. Yeni bir kullanıcı özniteliği eklerken, her kişi için bir anahtar-değer çifti ayarlayacaksınız.

Patrona, belirli bir kişinin kullanıcı öznitelik değerini aramak için kullanıcı özniteliği anahtarını kullanır. Kullanıcı özniteliği anahtarları, Patrona'daki parametrelerle eşlenebilir.

Kullanıcı öznitelik değeri, sandbox'a alınmış bir tablonun filtre değeriyle tam, büyük/küçük harfe duyarlı bir eşleşme olmalıdır. Örneğin, Hesaplar tablosunda Plan = "Temel" filtresiyle temel bir sandbox oluşturuyorsanız, kullanıcı öznitelik değeri olarak "Temel" girdiğinizden emin olun. Kullanıcı öznitelik değerini küçük harfli "temel" olarak ayarlarsanız (Hesaplar tablosunun Plan sütununda bulunmayan bir değer), sandbox'a alınmış kişi sandbox'a alınmış tablo yerine boş bir sonuç alacaktır.

Kullanımda olan kullanıcı özniteliklerine örnekler:

Temel bir sandbox oluşturma

  1. Öncelikle temel sandboxlar için ön koşulları yaptığınızdan emin olun.
  2. Yönetim ayarları > İzinler bölümüne gidin.
  3. sandbox'a almak istediğiniz veritabanını ve tabloyu seçin.
  4. sandbox'a koymak istediğiniz grubu bulun.
  5. O grup için Verileri görüntüle altındaki açılır menüye tıklayın.
  6. "sandbox'a Alınmış" seçeneğini seçin.
  7. Sütun altındaki açılır menüye tıklayın ve tabloyu filtrelemek için "Plan" gibi sütunu girin.
  8. Kullanıcı özniteliği altındaki açılır menüye tıklayın ve "Plan" gibi kullanıcı özniteliği anahtarını girin.

sandbox'a alınmış verileri kullanan kaydedilmiş SQL sorularınız varsa, bu soruların tümünü yalnızca yönetici koleksiyonlarına taşıdığınızdan emin olun. Daha fazla bilgi için İzin çakışmaları: kaydedilmiş SQL soruları bölümüne bakın.

Veri sandbox örneklerinde örnek bir temel sandbox kurulumu bulabilirsiniz.

Özel sandboxları için ön koşullar

Patrona'nın özel bir sandbox'da görüntülemesi için bir SQL sorusu oluşturma

Gelişmiş bir veri sandbox'da, Patrona belirli bir gruba orijinal tablo yerine kaydedilmiş bir soru görüntüler.

sandbox'a dahil edilecek tam satır ve sütunları tanımlamak için bir SQL sorusu kullanın. Bir sorgu oluşturucu (GUI) sorusu kullanırsanız, GUI soruları diğer kaydedilmiş sorulardan veya modellerden veriler içerebileceğinden yanlışlıkla fazladan veri açığa çıkarabilirsiniz.

SQL sorusunu yalnızca yöneticilere ait bir koleksiyona kaydettiğinizden emin olun (koleksiyon izinleri tüm gruplar için Erişim yok olarak ayarlanmıştır). Daha fazla bilgi için İzin çakışmaları: kaydedilmiş SQL soruları bölümüne bakın.

Özel bir sandbox'da düzenlenmiş sütunları görüntüleme

Özel bir sandbox'tan satırları ve sütunları hariç tutmanın yanı sıra, düzenlenmiş sütunları da görüntüleyebilirsiniz (veritabanınızdaki sütunları değiştirmeden).

Örneğin, E-posta sütununu tam e-posta adresleri yerine kullanıcı adlarını görüntülemek için kırpan bir "sandbox'a Alınmış Hesaplar" SQL sorusu oluşturabilirsiniz.

Bir sütunu düzenlerseniz, kaydedilmiş SQL sorusunun (sandbox'da görüntülemek istediğiniz soru) şeması, orijinal tablonun şemasıyla eşleşmelidir. Bu, "sandbox'a Alınmış Hesaplar" SQL sorusunun, orijinal Hesaplar tablosuyla aynı sayıda sütun ve karşılık gelen veri türlerini döndürmesi gerektiği anlamına gelir.

Özel bir sandbox'a sütun ekleyemezsiniz.

Özel bir sandbox oluşturma

  1. Öncelikle özel sandboxları için ön koşulları yaptığınızdan emin olun.
  2. Yönetim ayarları > İzinler bölümüne gidin.
  3. sandbox'a almak istediğiniz veritabanını ve tabloyu seçin.
  4. sandbox'a koymak istediğiniz grubu bulun.
  5. O grup için Veri erişimi altındaki açılır menüye tıklayın.
  6. "sandbox'a Alınmış" seçeneğini seçin.
  7. "Bu tablo için özel bir görünüm oluşturmak üzere kaydedilmiş bir soru kullanın" seçeneğini seçin.
  8. Kaydedilmiş sorunuzu seçin. Soru SQL'de yazılmalıdır. Soru parametreler içeriyorsa, bu parametreler gerekli olmalıdır (isteğe bağlı olamazlar).
  9. İsteğe bağlı: kişilerin kullanıcı özniteliklerine göre satırları kısıtlayın.

sandbox'a alınmış verileri kullanan kaydedilmiş SQL sorularınız varsa, bu soruların tümünü yalnızca yönetici koleksiyonlarına taşıdığınızdan emin olun.

Veri sandbox örneklerinde örnek özel sandbox kurulumları bulabilirsiniz.

Kullanıcı öznitelikleriyle özel bir sandbox'da satırları kısıtlama

Her kişi için kullanıcı özniteliklerine bağlı olarak farklı satırları kısıtlamak için özel bir sandbox ayarlayabilirsiniz. Örneğin, bir grup için Plan = "Temel" filtresiyle ve başka bir grup için Plan = "Premium" filtresiyle "sandbox'a Alınmış Hesaplar" sorusunu görüntüleyebilirsiniz.

  1. Tüm özel sandboxları için ön koşulları yaptığınızdan emin olun.
  2. Özel sandbox'daki kişilere görüntülenecek kaydedilmiş SQL sorusuna gidin.
  3. SQL sorgunuza {%raw%}WHERE plan = {{ plan_variable }} {%endraw%} gibi parametreli bir WHERE yan tümcesi ekleyin.
  4. SQL sorusunu kaydedin.
  5. Yönetim ayarları > İzinler bölümüne gidin.
  6. Özel sandbox'unuz için grubu ve tabloyu bulun.
  7. Verileri görüntüle altındaki açılır menüyü açın.
  8. sandbox'a alınmış erişimi düzenle seçeneğine tıklayın.
  9. Aşağı kaydırın ve Parametre veya değişken seçeneğini kaydedilmiş SQL sorunuzdaki parametrenin adıyla (örneğin, "Plan Değişkeni") ayarlayın.
  10. Kullanıcı özniteliği seçeneğini bir kullanıcı özniteliği anahtarıyla (örneğin, "Kullanıcının Planı" anahtarıyla, "Temel" değeriyle değil) ayarlayın.
  11. Kaydet seçeneğine tıklayın.

Örnek bir SQL değişkeni ve kullanıcı özniteliği kurulumu için Veri sandbox örneklerine bakın.

Özel bir sandbox'da satır kısıtlaması nasıl çalışır?

Kullanıcı öznitelikleri, SQL parametreleri ve özel sandboxlar, farklı kişilere farklı satırları görüntülemek için birlikte nasıl çalışır?

Standart bir WHERE yan tümcesi, bir sütunu sabit bir değere ayarlayarak bir tabloyu filtreler:

WHERE column_name = column_value

Yukarıdaki satır kısıtlama kurulumunun 2. adımında, WHERE yan tümcesinin dinamik bir değer kabul etmesi için bir SQL değişkeni ekleyeceksiniz. SQL değişken türü metin, sayı veya tarih olmalıdır:

WHERE plan = {%raw%}{{ plan_variable }}{%endraw%}

Yukarıdaki satır kısıtlama kurulumunun 9-10. adımlarında, Patrona'ya SQL değişkeni plan_variable'ı bir kullanıcı özniteliği anahtarıyla (örneğin, "Kullanıcının Planı") eşlemesini söylüyorsunuz. Patrona, bir kişinin Patrona hesabıyla ilişkili belirli kullanıcı öznitelik değerini (örneğin, "Temel") aramak için anahtarı kullanacaktır. Bu kişi Patrona'ya giriş yaptığında ve sandbox'a alınmış tabloyu kullandığında, şu şekilde filtrelenen sorgu sonucunu görecektir:

WHERE plan = "Temel"

Parametrelerin, özel bir sandbox oluşturmak için kullanılan SQL soruları için gerekli olması gerektiğini unutmayın. Örneğin, isteğe bağlı bir parametre kullanamazsınız; aşağıdakiler işe yaramaz:

[[WHERE plan = {%raw%}{{ plan_variable }}{%endraw%}]]

SQL parametreleri hakkında daha fazla bilgi edinin

Veri sandbox izinleri çakışmalarını önleme

Bazı Patrona izinleri, amaçladığınızdan daha izin verici veya daha kısıtlayıcı veri erişimi sağlamak için veri sandboxlarla çakışabilir.

Hesaplar tablosundan E-posta sütununu gizleyen özel bir sandbox'unuz (belirli bir grup için) olduğunu varsayalım.

E-posta sütunu, sandbox'a alınmış bir kişiye şu durumlarda gösterilebilir:

Birden çok veri sandbox izni

Aynı tablo üzerindeki birden çok veri sandbox'u, bir izin çakışması oluşturabilir. Bir kişiyi, kişi grubunun aracılığıyla tablo başına en fazla bir veri sandbox'a ekleyebilirsiniz.

Örneğin, şunlara sahipseniz:

  • Hesaplar tablosunu Plan = "Temel" üzerinde filtreleyen "Temel Hesaplar" grubu için bir sandbox.
  • Hesaplar tablosunu Trial Converted = true üzerinde filtreleyen "Dönüştürülmüş Hesaplar" grubu için başka bir sandbox.

Vincent Accountman'ı her iki gruba da koyarsanız, Hesaplar tablosu için çakışan sandboxlarda olacaktır ve Patrona'da Hesaplar'ı kullanmaya çalıştığında her zaman bir hata mesajı alacaktır.

Veri sandbox'u izinleri çakışmalarını çözmek için:

  • Kişiyi grupların yalnızca birinden kaldırın.
  • Grupların yalnızca birinin Verileri görüntüle erişimini veritabanına "Engellendi" olarak ayarlayın.

Kaydedilmiş SQL soruları sandbox'a alınamaz

Veri sandbox'u izinleri, SQL sorularının sonuçlarına uygulanmaz. Yani, kaydedilmiş SQL soruları her zaman sandbox'a alınmış tablo yerine orijinal tablodan sonuçlar görüntüler.

Hesaplar tablosundan E-posta sütununu gizleyen özel bir sandbox'unuz olduğunu varsayalım. sandbox'a alınmamış bir kişi E-posta sütununu içeren bir SQL sorusu oluşturursa, bu SQL sorusunu görüntüleme koleksiyon izinlerine sahip herkes şunları yapabilecektir:

  • SQL sorusu sonuçlarında E-posta sütununu görün.
  • E-posta sütununu içeren yeni bir soru başlatmak için SQL sorusunu kullanın.

E-posta sütununun bir SQL sorusu aracılığıyla açığa çıkmasını önlemek için:

  • E-posta sütununu içeren tüm SQL sorularını ayrı bir koleksiyona koyun.
  • E-posta sütununu görmemesi gereken sandbox'a alınmış gruplar için koleksiyon izinlerini Erişim yok olarak ayarlayın.

sandbox'a alınmış grupların sandbox'a alınmış tablolara başvuran kaydedilmiş SQL sorularını görüntülemesini engellemek için koleksiyon izinleri kullanılmalıdır. Bu nedenle, özel bir sandbox oluşturduğunuzda, kaydedilmiş SQL sorusunu (sandbox'da görüntülemek istediğiniz soru) yalnızca yöneticilere ait bir koleksiyona koymanız gerekir.

Herkese açık paylaşım

Veri sandbox izinleri, herkese açık sorulara veya herkese açık panolara uygulanmaz. sandbox'a alınmamış bir kişi orijinal bir tablo kullanarak herkese açık bir bağlantı oluşturursa, herkese açık bağlantı URL'sine sahip herkese orijinal tablo görüntülenecektir.

Bunun olmasını önlemek için, Patrona örneğiniz için herkese açık paylaşımı devre dışı bırakmanız gerekir.

Patrona, yalnızca oturum açmış kişilerin grup üyeliğini veya kullanıcı özniteliklerini kullanarak bir veri sandbox oluşturabilir. Herkese açık bağlantılar oturum açma gerektirmediğinden, Patrona'nın sandbox'unu oluşturmak için yeterli bilgisi olmayacaktır.

Daha fazla okuma