DCL, bir veri tabanı ile ilişkili kullanıcıları ve rollerin izinlerini değiştirmek için kullanılır. Diğer bir deyişle verilere erişim yetkilerini düzenlemede kullanılır. Bazı temel DCL komutları aşağıdaki şekildedir:
Temel DCL Komutları
GRANT: Bir kullanıcının verileri kullanmasına ve T-SQL komutlarını çalıştırmasına izin verir.
DENY: Bir kullanıcının verileri kullanmasını kısıtlar.
REVOKE: Daha önce yapılan tüm kısıtlama ve izinleri iptal eder. DCL komutlarını kullanabilmek için SQL Server’da varsayılan değer (default) olarak yetki sahibi olan gruplar: sysadmin , dbcreator , db_owner , db_securityadmin ‘dir. Sunucuya dışarıdan bir erişim sağlamak için bir giriş (login) oluşturulmalıdır.
Bunun için;
CREATE LOGIN handan WITH PASSWORD =’123456’
Bu rol ile veri tabanına bir kullanıcı olarak erişim için aşağıdaki satırlar yazılmalıdır:
CREATE USER Herdag
FOR LOGIN handan
Eğer User adı ile Login adı aynı ise FOR LOGIN satırına gerek kalmaz.
Veri tabanında uygulama rolü oluşturulması için de aşağıdaki satırlar kullanılabilir:
CREATE APPLICATION ROLE Lab1
WITH PASSWORD = ‘sifre’,
DEFAULT_SCHEMA=Lab1;
GRANT Komutu
Veri tabanı kullanıcısına, veri tabanı rolüne veya uygulama rolüne izinler vermek için kullanılan komuttur.
- Genel Yazımı
- Örnek :
- Örnek II:
GRANT {ALL veya izinler}
ON {izin_verilenler}
TO {hesaplar}
ALL ifadesi, tüm hakların verilebileceğini gösterir.
handan adlı kullanıcıya tablo oluşturma izni şöyle verilebilir:
GRANT CREATE TABLE
TO handan
Aynı anda Lab1 rolüne de aynı izin verilebilir.
GRANT CREATE TABLE TO Lab1, handan
Bir kullanıcıya hem veri tabanı hem de tablo oluşturma izni şöyle verilir:
GRANT CREATE DATABASE, CREATE TABLE TO seco
DENY Komutu
Kullanıcıların haklarını kısıtlayan komuttur.
- Genel Yazımı
- Örnek :
- Örnek II:
DENY { ALL veya izinler} TO {kullanıcılar}
DENY CREATE TABLE
TO handan
handan adlı kullanıcının tablo oluşturma yetkisi kısıtlanır.
DENY SELECT ON PERSONEL TO handan
10
PERSONEL tablosunda hadnan adlı kullanıcı SELECT komutuyla ilgili işlem
REVOKE Komutu
Daha önce yapılan tüm kısıtlama ve izinleri iptal eden komuttur. Bir nesneyi oluşturan kullanıcının REVOKE ile nesne üzerindeki yetkilendirme ve kullanma hakkı yok edilemez.
REVOKE komutunu, sys_admin rolüne veya db_owner, db_securityadmin sabit veri tabanı rollerine sahip kullanıcılar ve nesne için dbo olan kullanıcı çalıştırabilir.
- Genel Yazımı
- Örnek :
- Örnek II:
REVOKE {ALL veya izinler} {TO veya FROM} {hesaplar}
REVOKE ALL TO PUBLIC
PUBLIC rolüne verilmiş olan tüm yetkiler kaldırılır.
REVOKE SELECT ON PERSONEL TO PUBLIC
PUBLIC rolüne PERSONEL tablosunda seçim için verilen izin kaldırılır.