Veri Sandbox örnekleri
Veri sanal alanları şunları yapmanızı sağlar:
- Temel bir sanal alan kullanarak satırları kısıtlayın.
- Özel bir sanal alan kullanarak sütunları (ve satırları) kısıtlayın.
Aşağıdaki tüm örnekler için kurulum
Aşağıdaki örnekler, Patrona ile birlikte gelen Örnek veritabanını kullanır. İşte temel kurulum:
-
Tüm kullanıcılar grubu için izinleri engelleyin: Komut paletini açmak için cmd/ctrl + k tuşlarına basın ve "İzinler"i arayın. İzinler > Veri sekmesinde. Tüm kullanıcılar grubuna tıklayın. Örnek veritabanı için, Tüm Kullanıcıların Verileri görüntüle iznini "Engellendi" olarak ayarlayın.
-
Müşteriler adlı bir grup oluşturun. Cmd/ctrl + k tuşlarına basın ve Kişi ayarlarını arayın. [Müşteriler adlı bir grup oluşturun.
-
Cloyd Beer için bir kullanıcı hesabı oluşturun. Örnek Veritabanımızdaki Kişiler tablosundan rastgele bir kişi için bir kullanıcı hesabı oluşturacağız. Örnek veritabanının
Kişiler
tablosundanCloyd Beer
ile devam edelim. -
Hesaba bir kullanıcı özelliği ekleyin: Cloyd'un hesabına bir kullanıcı özelliği ekleyeceğiz. Verileri kullanıcı kimliğine göre filtreleyebilmek istediğimiz için, Cloyd'un kimliğini Örnek veritabanının
Kişiler
tablosundan alıp bir kullanıcı özelliği olarak ekleyeceğiz:user_id: 2499
(2499
, Bay Beer'in Örnek veritabanındaki kimliğidir).
-
Bay Beer'i Müşteriler grubuna ekleyin: Bkz. kişileri gruplara ekleme.
-
Yalnızca Yöneticiler tarafından görüntülenebilen bir koleksiyon oluşturun.. "Yönetici koleksiyonu" olarak adlandırın. Bu koleksiyonu, örnek 2 ve 3'teki tabloları sanal alana almak için kullandığımız SQL sorularını depolamak için kullanacağız. Bkz. Koleksiyon izinleri.
Temel sanal alan kurulumu - satırları kullanıcı özelliklerine göre filtreleme
Bu örnekte, Siparişler
tablomuzu, Müşteriler grubumuzdaki herkesin yalnızca Siparişler tablosunda Kullanıcı Kimliği
sütununun kişinin user_id
özelliğiyle eşleştiği satırları görebileceği şekilde sanal alana alacağız.
-
Yönetim ayarları > İzinler > veri'ye gidin. "Müşteriler" grubuna tıklayın.
-
Verileri görüntüle'yi Ayrıntılı olarak ayarlayın. Örnek Veritabanı için, Müşteri grubunun Verileri görüntüle iznini "Ayrıntılı" olarak ayarlayın. "Ayrıntılı" olarak ayarlamak, Müşteri grubu için tek tek tablolarda izinler ayarlamamıza olanak tanır.
-
Siparişler ve Kişiler tablolarını sanal alana alın. Burada,
Siparişler
veKişiler
tablolarındaki Verileri görüntüle izinlerini "Sanal Alana Alınmış" olarak ayarlayacağız. Ve kişilerin verilerini kendi başlarına almalarını (soru sorarak, panolar oluşturarak vb.) istediğimiz için, Sorgu oluşturma izinlerini de "Yalnızca sorgu oluşturucu" olarak ayarlayacağız.
- Her tablo için bir sütuna göre filtreleyin. Her tablo için Patrona bize "Bu tabloyu bu gruptaki kullanıcılar için nasıl filtrelemek istiyorsunuz?" diye soracaktır. Her durumda, varsayılan seçimi koruyacağız: "Bu tablodaki bir sütuna göre filtrele".
Siparişler
tablosu için, Müşteriler grubundaki kişiler içinuser_id
özelliğine eşit olarak ayarlayacağımızKullanıcı Kimliği
sütununa göre filtreleyeceğiz.
Kişiler
tablosu için, aynı user_id
özelliğine eşit olarak ayarlayacağımız Kimlik
sütununa göre filtreleyeceğiz.
- Değişikliklerinizi kaydedin. Aksi takdirde, her şey boşunadır.
Temel sanal alanı test etme
Bay Beer'in sanal alanını test etmek için, yeni bir gizli/özel tarayıcı penceresi açıp Bay Beer'in hesabını kullanarak oturum açacağız.
- Cloyd Beer olarak oturum açın.
- Gözat > Veritabanları'na tıklayın.
- Siparişler tablosuna tıklayın.
- Patrona'nın yalnızca Bay Beer'in verdiği siparişleri, yani
2499
Kullanıcı Kimliği ile ilişkili siparişleri görüntülediğini doğrulayın.
Bay Beer, sanal alana alınmış Siparişler
verilerini içeren herhangi bir grafik, pano veya hatta otomatik X-ışını keşifleri görüntülerse, Patrona bu sonuçları yalnızca Bay Beer'in görmesine izin verilen verileri gösterecek şekilde filtreleyecektir. Bay Beer, yeni sorular sormak için sorgu oluşturucuyu kullandığında, sonuçları sanal alana alınmış verilerle sınırlı olacaktır.
Özel sanal alan kurulumları
Bir sanal alan oluşturmanın ikinci yolu, görüntülenecek bir tablonun özelleştirilmiş bir görünümünü tanımlamak için kaydedilmiş bir soru kullanmaktır. Bir tabloya sanal alana alınmış erişimi olan biri bu tabloyu sorguladığında, Patrona arka planda sorguları için kaynak veri olarak oluşturduğunuz kaydedilmiş soruyu kullanacaktır.
Şunları yapabilirsiniz:
Özel örnek 1: sütunları filtreleme
Bu örnekte, Bay Beer ve diğer Müşterilerin herhangi bir satırı görüntüleyebilmesi, ancak yalnızca bazı sütunları görüntüleyebilmesi için Kişiler
adlı bir tablomuz var.
- Kişiler tablosundaki sütunları sınırlayan bir sorgu oluşturun. Yerel/SQL düzenleyicisini kullanarak, Müşteriler grubumuzun görmesini istediğimiz tablodaki sütunları döndüren bir sorgu yazacağız, örneğin:
ID,
Ad,
'Oluşturulma Tarihi',
Durum
FROM
Kişiler
İşte sonuçlar:
Bu soruyu "Filtrelenmiş kişiler tablosu" olarak adlandıracağız. Kurulumda oluşturduğunuz "Yöneticiler koleksiyonu"na (veya yalnızca Yöneticilerin erişimi olan herhangi bir koleksiyona) kaydedin.
- Bu tablo için özel bir görünüm oluşturmak için kaydedilmiş bir soru kullanın: İzinler bölümüne gideceğiz ve bu gruba bu tabloya sanal alana alınmış erişim izni vereceğiz. Bu sefer ikinci seçeneği seçeceğiz, "Bu tablo için özel bir görünüm oluşturmak için kaydedilmiş bir soru kullanın" ve az önce oluşturduğumuz kaydedilmiş soruyu ("Filtrelenmiş kişiler tablosu") seçeceğiz, örneğin:
-
Değişiklikleri kaydedin, yoksa emeğimiz boşa gider.
-
Her şeyin doğru çalıştığını doğrulayın. Bay Beer olarak oturum açabiliriz ve
Kişiler
tablosunu açmaya gittiğimizde, Bay Beer'in bunun yerine filtreleme sorusunun sonuçlarını görebileceğini görmeliyiz.
Bay Beer, bu sanal alana alınmış tablodan veri kullanan bir grafik görüntülerse, Patrona filtrelemeyi de uygulayacaktır. Grafik, sanal alana alınmış tablo tarafından hariç tutulan herhangi bir sütun kullanıyorsa, grafik Bay Beer için YÜKLENMEZ.
Özel örnek 2: Satırları ve sütunları filtreleme
Kişilerin hangi sütunları ve satırları görüntüleyebileceğini belirtmek istiyorsak, bir tabloyu bir değişken içeren bir SQL sorusuna göre sanal alana alabilir ve bu değişkeni bir kullanıcı özelliğiyle ilişkilendirebiliriz. Bunu yapmak için, Müşteriler grubumuza Siparişler
tablosunun özel bir görünümünü vereceğiz, ancak her kişinin yalnızca user_id
kullanıcı özelliğine göre satırları görmesine izin vereceğiz.
- Bir değişken içeren bir SQL sorusu oluşturun.
Siparişler
tablosundaki sütunların yalnızca bazılarını seçen bir sorgu oluşturacağız ve ardından Cloyd Beer'inuser_id
kullanıcı özelliğiyle ilişkilendirebileceğimiz bir değişken içeren birWHERE
yan tümcesi ekleyeceğiz.
Ve işte kod:
{{'
SELECT
id,
created_at,
product_id,
quantity,
total,
user_id
FROM
orders
WHERE
user_id = {{user_id}}
'}}
Kurulumda oluşturduğunuz "Yöneticiler koleksiyonu"na (veya yalnızca Yöneticilerin erişimi olan herhangi bir koleksiyona) kaydedin.
- Sanal alanı ayarlayın: İzinler sekmesine dönün. Cloyd Beer'in Müşteri grubunu seçin ve
Siparişler
tablosu için Verileri görüntüle erişimini Sanal Alana Alınmış olarak ayarlayın. Bu tablo için özel bir görünüm oluşturmak için kaydedilmiş bir soru kullanın seçeneğini belirleyin. Sanal alana alınmış erişim modalını açın ve ikinci seçeneği seçin ve filtreleme sorumu seçin, sorumuzda tanımladığımız değişkeni bir kullanıcı özelliğiyle eşlememe olanak tanıyan ek bir bölüm göreceğiz:
-
Değişikliklerinizi kaydedin. Veya tüm umutları terk edin.
-
Sanal alanı doğrulayın: Şimdi, Bay Beer olarak oturum açıp
Siparişler
tablosuna baktığımızda, Bay Beer yalnızca filtreleme sorusuna dahil ettiğimiz sütunları görecek ve satırlar sorununWHERE
yan tümcesindeki değişken tarafından belirtildiği gibi filtrelenecektir: