Veri Kontrol Dili (DCL)

HİBE, REVOKE ve DENY Veritabanı İzinleri

Veri Denetim Dili (DCL), Yapılandırılmış Sorgu Dili'nin (SQL) bir alt kümesidir ve veritabanı yöneticilerinin ilişkisel veritabanlarına güvenlik erişimini yapılandırmasına izin verir. Veritabanı nesneleri eklemek ve silmek için kullanılan Veri Tanımlama Dilini (DDL) ve bir veritabanının içeriğini almak, eklemek ve değiştirmek için kullanılan Veri Manipülasyon Dili'ni (DML) tamamlar.

DCL, SQL alt kümelerinin en basitidir, çünkü yalnızca üç komuttan oluşur: GRANT, REVOKE ve DENY. Kombine, bu üç komut, yöneticilere veritabanı izinlerini son derece ayrıntılı bir şekilde ayarlama ve kaldırma esnekliği sağlar.

GRANT Komutu ile İzin Ekleme

GRANT komutu, yöneticiler tarafından bir veritabanı kullanıcısına yeni izinler eklemek için kullanılır. Aşağıdaki gibi tanımlanan çok basit bir sözdizimi vardır:

GRANT [ayrıcalık] ON [object] TO [kullanıcı] [GRANT OPTION]

İşte bu komutla sağlayabileceğiniz parametrelerin her biri için özet:

Örneğin, kullanıcıya Joe'nun HR denilen bir veritabanındaki çalışanlar tablosundan bilgi alma yeteneğini vermeyi kabul ettiğinizi varsayalım. Aşağıdaki SQL komutunu kullanabilirsiniz:

HALI SEÇİMİ HR.employees Joe'ya

Joe şimdi çalışanların tablosundan bilgi alma yeteneğine sahip olacak. Ancak, diğer kullanıcıların, GRANT deyiminde WITH GRANT OPTION deyimini içermediğinden, o tablodaki bilgileri alma izni veremez.

Veritabanı Erişimini İptal Etme

REVOKE komutu, daha önce bu tür bir erişim izni verilen bir kullanıcıdan veritabanı erişimini kaldırmak için kullanılır. Bu komutun sözdizimi aşağıdaki gibi tanımlanmıştır:

REVOKE [GRANT SEÇENEĞİ] [izin] ON [object] FROM [kullanıcı] [CASCADE]

REVOKE komutunun parametrelerini aşağıda bulabilirsiniz:

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

Joe'dan HR.employees SEÇİNİZİ SEÇİN

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

DENY komutu, bir kullanıcının belirli bir izni almasını açıkça engellemek için kullanılır. Bu, bir kullanıcı bir izin verilen bir rol veya gruba üye olduğunda ve bir kullanıcının istisna oluşturarak izni devralmasını engellemek istediğinizde yararlıdır. Bu komutun sözdizimi şöyledir:

DENY [izin] AÇIK [object] TO [kullanıcı]

DENY komutu için parametreler GRANT komutu için kullanılanlarla aynıdır.

Örneğin, Matta'nın çalışanlar tablosundaki bilgileri silme yeteneğini asla almamasını sağlamak isterseniz, aşağıdaki komutu verin:

Matthew 'den HR.employees' i DENE DELETE