Veritabanı İzinleri için Veri Kontrol Dili (DCL)

click fraud protection

NS Veri Kontrol Dili Yapılandırılmış Sorgu Dilinin bir alt kümesidir. Veritabanı yöneticileri, ilişkisel veritabanlarına güvenlik erişimini yapılandırmak için DCL'yi kullanır. tamamlar Veri Tanımlama Diliveritabanı nesnelerini ekleyen ve silen ve Veri işleme dili, bir veritabanının içeriğini alır, ekler ve değiştirir.

DCL, yalnızca üç komuttan oluştuğu için SQL alt kümelerinin en basitidir: GRANT, REVOKE ve DENY. Bu üç komut bir araya geldiğinde, yöneticilere veritabanı izinlerini ayrıntılı bir şekilde ayarlama ve kaldırma esnekliği sağlar.

GRANT Komutuyla İzin Ekleme

GRANT komutu, bir veritabanı kullanıcısına yeni izinler ekler. Aşağıdaki gibi tanımlanmış çok basit bir sözdizimine sahiptir:

HİBE [ayrıcalık]
AÇIK [nesne]
Kullanıcıya]
[HİBE SEÇENEĞİ İLE]

Bu komutla sağlayabileceğiniz parametrelerin her birinin özeti:

  • ayrıcalık — ALL anahtar kelimesi (çok çeşitli izinler vermek için) veya belirli bir veritabanı izni veya izinler grubu olabilir. Örnekler, CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE ve CREATE VIEW içerir.
  • Nesne — herhangi bir veritabanı nesnesi olabilir. Geçerli ayrıcalık seçenekleri, bu maddeye eklediğiniz veritabanı nesnesinin türüne göre değişir. Tipik olarak, nesne bir veritabanı, fonksiyon, saklı yordam, tablo veya görünüm.
  • kullanıcı - herhangi bir veritabanı kullanıcısı olabilir. Rol tabanlı veritabanı güvenliğinden yararlanmak istiyorsanız, bu maddede kullanıcının yerine bir rol de koyabilirsiniz.
  • isteğe bağlı eklerseniz HİBE SEÇENEĞİ İLE GRANT komutunun sonundaki yan tümce, yalnızca belirtilen kullanıcıya izinleri vermekle kalmaz SQL deyiminde tanımlanmıştır, ancak aynı zamanda kullanıcıya aynısını daha fazla verme izni verir. izinleri başka veritabanı kullanıcıları. Bu nedenle, bu maddeyi dikkatli kullanın.

Örneğin, kullanıcıya yetki vermek istediğinizi varsayalım. Joe bilgi alma yeteneği çalışan tablo bir veri tabanı aranan İK. Aşağıdaki SQL komutunu kullanın:

HİBE SEÇİMİ
ON İK.çalışanlar
Joe'ya.

Joe, çalışanların masasından bilgi alabilir. Ancak, DCL komut dosyası WITH GRANT OPTION yan tümcesini içermediğinden diğer kullanıcılara bu tablodan bilgi alma izni veremez.

Veritabanı Erişimini İptal Etme

REVOKE komutu, daha önce bu tür bir erişim verilmiş bir kullanıcıdan veritabanı erişimini kaldırır. Bu komutun sözdizimi şu şekilde tanımlanır:

İPTAL [GRANT SEÇENEĞİ] [izin]
AÇIK [nesne]
[kullanıcı]
[ÇAĞLAYAN]

İşte REVOKE komutuna ilişkin parametrelerin özeti:

  • İzin — tanımlanan kullanıcıdan kaldırılacak veritabanı izinlerini belirtir. Komut, tanımlanan izin için daha önce yapılmış hem GRANT hem de DENY iddialarını iptal eder.
  • Nesne — herhangi bir veritabanı nesnesi olabilir. Geçerli ayrıcalık seçenekleri, bu maddeye eklediğiniz veritabanı nesnesinin türüne göre değişir. Tipik olarak, nesne bir veritabanı, fonksiyon, saklı yordam, tablo veya görünüm olacaktır.
  • kullanıcı - herhangi bir veritabanı kullanıcısı olabilir. Rol tabanlı veritabanı güvenliğinden yararlanmak istiyorsanız, bu maddede kullanıcının yerine bir rol de koyabilirsiniz.
  • NS HİBE SEÇENEĞİ yan tümcesi, belirtilen kullanıcının diğer kullanıcılara belirtilen izni verme yeteneğini kaldırır. dahil ederseniz HİBE SEÇENEĞİ REVOKE deyimindeki madde, birincil izin iptal edilmez. Bu madde yalnızca verme yeteneğini iptal eder.
  • NS ÇAĞLAYAN seçeneği ayrıca, belirtilen kullanıcının izin verdiği tüm kullanıcılardan belirtilen izni iptal eder.

Aşağıdaki komut, önceki örnekte Joe'ya verilen izni iptal eder:

SEÇİMİ İPTAL ET
ON İK.çalışanlar
Joe'dan.

Veritabanı Erişimini Açıkça Reddetme

DENY komutu, bir kullanıcının belirli bir izni almasını açıkça engeller. Bu özellik, bir kullanıcı, izin verilen bir rolün veya grubun üyesi olduğunda ve bir istisna oluşturarak bu bireysel kullanıcının izni devralmasını önlemek istediğinizde yararlıdır. Bu komutun sözdizimi aşağıdaki gibidir:

REDDET [izin]
AÇIK [nesne]
Kullanıcıya]

DENY komutunun parametreleri GRANT komutu için kullanılanlarla aynıdır. Örneğin, Matthew'un çalışanların masasından bilgi silme yeteneğini asla almamasını istiyorsanız, aşağıdaki komutu verin:

REDDET SİL
ON İK.çalışanlar
Matta'ya.