Data Management (DMS), bağlı olan tüm NoSQL dışı veritabanları için satır düzeyinde erişim denetimi sağlar. Bu özellik, kullanıcıların hangi veri satırlarına erişebileceğini belirler. Örneğin, bir satış müdürü yalnızca kendisine atanan bölgeye ait verileri görüntüleyecek şekilde kısıtlanabilir.
Önkoşullar
Örnek, Güvenli İş Birliği kontrol modunda olmalıdır. Daha fazla bilgi için bkz. Kontrol modunu görüntüleme.
Arka plan bilgileri
Verileri güvence altına alırken dikey ve yatay veri koruma olmak üzere iki temel yaklaşım bulunur.
-
Dikey veri koruma: Bu yöntem, alan düzeyinde veri koruma yoluyla uygulanır.
Alanları duyarlılık düzeylerine göre sınıflandırarak hassas verilere tam veya kısmi maskeleme uygulayabilirsiniz. Daha fazla bilgi için bkz. Hassas verileri yönetme.
Örneğin, istatistiksel analizden sorumlu bir çalışan sipariş tablosundaki müşteri e-posta adreslerini göremez.

-
Yatay veri koruma: Bu yöntem, satır düzeyinde erişim denetimi yoluyla uygulanır.
Satırlar bir veya daha fazla belirli değere (kontrol değerleri) göre filtrelenir; bu sayede satır düzeyindeki verilere erişimi kontrol edebilirsiniz.
Örneğin, çok şubeli bir işletmede çalışan bir kişi, tüm konumlar yerine yalnızca kendisine atanan mağazaya ait sipariş verilerini görüntüleyebilir.

Sınırlamalar
Bu özellik yalnızca MySQL ve PolarDB gibi ilişkisel veritabanları için kullanılabilir.
Bu özellik yalnızca Güvenli İş Birliği kontrol modundaki örnekler için kullanılabilir.
Bu özellik yalnızca fiziksel veritabanlarını destekler ve henüz mantıksal veritabanlarını desteklemez.
-
Tüm satır izinlerine sahip olmayan kullanıcılar, satır düzeyinde erişim denetimi olan bir tabloda veri sorgularken, değiştirirken veya silerken aşağıdaki filtre kısıtlamalarına tabidir:
Kontrol alanı için filtre değerleri belirtmeniz gerekir ve bu değerler kontrol değerleri listesinde yer almalıdır.
-
Filtre koşulları kısıtlıdır. Örneğin:
WHERE yan tümcesi yalnızca
=veinişleçlerini destekler.OR, XOR ve NOT gibi mantıksal işlemler desteklenmez.
Temel kavramlar
-
Kontrol tablosu, kontrol alanı ve kontrol değeri
Kontrol tablosu: Satır düzeyinde erişim denetimi yapılandırmak istediğiniz tablo.
Kontrol alanı: Satır düzeyinde erişim denetimini uygulamak için kullanılan kontrol tablosundaki alan.
Kontrol değeri: Kontrol alanının bir değeri.
-
Satır düzeyi izinleri: Kontrol alanının değerlerine göre satır düzeyindeki verilere erişimi kontrol eden izinler.
Tek değerli satır izinleri: Bir veya daha fazla belirli kontrol değerine göre erişimi kontrol eder.
Tüm satır izinleri: Kontrol tablosundaki tüm satırlara erişim sağlar.
-
Kontrol grubu: Aynı kontrol değeri kümesini paylaşan kontrol alanları bir kontrol grubuna eklenebilir.
Örneğin, A Tablosu ve B Tablosu aynı kontrol değerlerine dayalı satır düzeyinde erişim denetimi gerektiriyorsa her iki tabloyu da yönetmek için tek bir kontrol grubu kullanabilirsiniz.
Satır düzeyinde erişim denetimi yapılandırma
Bu görevi yalnızca yöneticiler, DBA'ler veya güvenlik yöneticileri gerçekleştirebilir. Kullanıcı rolleri hakkında daha fazla bilgi için bkz. Sistem rolünüzü görüntüleme.
DMS 5.0 konsolunda oturum açın.
-
Sol üst köşedeki
simgesinin üzerine gelin ve seçeneğini belirleyin.NotDMS konsolunu normal modda kullanıyorsanız üst gezinme çubuğundan seçeneğini belirleyin.
Sayfanın sağ üst köşesinde hassas veri listesini açmak için Global Sensitive Data öğesini tıklayın.
Row Control sekmesini tıklayın.
Create Control Group seçeneğini tıklayın ve kontrol grubuna bir ad verin.
-
Bir satır yapılandırması ekleyin ve ardından Add seçeneğini tıklayın.
Add Row Configuration seçeneğini tıklayın.
Hedef veritabanını arayıp seçin.
Hedef tabloyu ve kontrol alanını seçin.
İsteğe bağlı: Aynı kontrol değerlerini kullanan birden çok kontrol tablosu eklemek için Add Row Configuration seçeneğini tıklayın.
Satır düzeyinde erişim denetimi yapılandırdıktan sonra gerekli izinleri alana kadar SQL Console üzerinden hedef tablodaki verileri görüntüleyemezsiniz. Gerekli satır filtresi olmadan sorgu çalıştırırsanız DMS isteği engeller ve bir hata döndürür. Örnek:SELECT * FROM
testRLS Access Denied: [test]: You do not have permission for all rows in this table. The WHERE clause must include a filter condition [1] on the control field: name TraceId: 0a032a1516728214824878812ed7f0 SELECT * FROMtestWHEREname= 'Xiaohong'; RLS Access Denied: [test]: Access to a table with row-level access control is involved. You do not have permission to access the row: name = Xiaohong. The control value 'Xiaohong' does not exist. To access this value, contact an administrator, DBA, or security administrator to add the value and then apply for the corresponding row-level permissions before retrying. TraceId: 0a032a1d16728216329266611e4b0d -
İsteğe bağlı: Belirli satır değerleri için izin vermek üzere öncelikle bu değerleri tanımlamanız gerekir.
Hedef kontrol grubunun Actions sütununda Details seçeneğini tıklayın.
Control Value Details panelinde Add Row Value seçeneğini tıklayın.
-
Import Row Value iletişim kutusunda mevcut satır değerlerinin üzerine yazılmasını mı yoksa yeni değerlerin eklenmesini mi istediğinizi seçin.
Yes: Yeni satır değerlerini mevcut olanlara ekler.
No: Mevcut tüm satır değerlerini yenileriyle değiştirir.
-
Satır değeri içeriğini girin.
NotTek bir satır değerine birden çok kontrol değeri ekleyebilirsiniz. Kontrol değerlerini virgül (,) ile ayırın. İsteğiniz onaylandıktan sonra o satır değeri içindeki tüm kontrol değerlerini sorgulama iznine sahip olursunuz.
Örneğin, bir çalışanın yalnızca Beijing ve Shanghai'deki müşteri verilerini görüntülemesine izin veriliyorsa satır değeri içeriği olarak
Beijing, Shanghaigirebilirsiniz. Çalışanın bu satır değeri için izin isteği onaylandığında hem Beijing hem de Shanghai bölgelerindeki müşteri verilerini görüntüleyebilir.
Satır düzeyi izinleri için başvuru yapma
DMS 5.0 konsolunda oturum açın.
-
Sol üst köşedeki
simgesinin üzerine gelin ve seçeneğini belirleyin.NotDMS konsolunu normal modda kullanıyorsanız üst gezinme çubuğundan seçeneğini belirleyin.
Sayfanın sağ üst köşesinde öğesini seçin.
-
Veritabanı adını girin.
NotBelirsiz aramalar için yüzde işaretini (%) kullanabilirsiniz.
-
Satır düzeyi izinlerinin kapsamını seçin.
-
Single : Tek tek satır değerleri için izin başvurusunda bulunun.
NotBir satır değeri birden çok kontrol değeri içerebilir. Bir satır değeri için izniniz varsa içerdiği tüm kontrol değerlerine karşılık gelen verileri sorgulayabilir, dışa aktarabilir veya değiştirebilirsiniz.
Bir kontrol değeri birden çok satıra karşılık gelebilir. Bir kontrol değeri için izniniz varsa o değere karşılık gelen tüm veri satırlarını sorgulayabilir, dışa aktarabilir veya değiştirebilirsiniz.
All : Kontrol tablosundaki tüm satırlara erişin.
-
Search seçeneğini tıklayın.
-
Hedef satır düzeyi izinlerini seçin ve
simgesini tıklayın.NotSatır değeri sütunundaki kısa çizgi (
-), tüm satırlar için izin olduğunu gösterir. Bir Permission type seçin, bir validity period seçin ve başvuru için bir Reason girin.
-
Submit seçeneğini tıklayın.
Biletiniz onaylandıktan sonra SQL Console üzerinden verileri sorgulayabilir, dışa aktarabilir veya değiştirebilirsiniz. Örneğin, SQL Console üzerinde SELECT * FROM
order1WHERE region = 'Beijing'; komutunu çalıştırdığınızda order1 tablosundan yalnızca bölgesi Beijing olan Zhangsan ve Xiaoming'e ait iki kayıt döndürülür. Bu durum, satır düzeyinde erişim denetiminin doğru çalıştığını doğrular.NotSatır düzeyi izinlerini serbest bırakmak için:
Kendi izinlerinizi serbest bırakmak için: İzinlerinizi görüntülemek ve serbest bırakmak için View your permissions bölümüne gidin. Daha fazla bilgi için bkz. İzinlerinizi görüntüleme.
Bir yöneticinin izinleri serbest bırakması için: sayfasında hedef kullanıcıyı bulun ve Actions sütununda seçeneğini belirleyerek kullanıcının izinlerini görüntüleyin ve serbest bırakın.