# SQL GRANT, DENY, REVOKE KOMUTLARI

Kaynak: https://webodasi.com/sql-grant-deny-revoke-komutlari/
Yazar: Mehtap Gülten
Yayın: 2020-07-10
Güncelleme: 2020-07-22

Merhaba arkadaşlar, bugünkü yazımızda **SQL GRANT, DENY, REVOKE KOMUTLARI**  konusunu işleyeceğiz.

 

### Grant Komutu

 

- Kullanıcılara veritabanı nesneleri üzerinde güvenlik ayrıcalıkları vermek için kullanılan komuttur.

 

#### Kullanım Şekli

 

GRANT (all | izinler) ON (izneTabiTutulanlar) TO (izinVerilenler)

 

- **Yetki_adı** : Kullanıcılara verilecek olan erişim yetkisidir. Erişim seçeneklerinden bazıları: ALL, SELECT, INSERT, UPDATE.
- **Nesne_adı** : Üzerinde yetki verilecek tablo, View, Stored Proc gibi bir veritabanı nesnesini gösterir.
- **Kullanıcı_adı** : Yetki verilecek kullanıcının adını gösterir.
- **Public** : Bütün kullanıcılara yetki vermek için kullanılır.
- **Rol_adı** : Bir grup için toplanan yetkileri gösterir.
- **With Grant Option** : Bir kullanıcıya diğer kullanıcılara yetki verme olanağı sağlar.

 

**1-)**  Sunucuya dışarıdan bir erişim sağlamak için bir giriş (login) oluşturulmalıdır.

 

```
CREATE LOGIN MERYEM WITH PASSWORD="ASDFGHJK"
```

 

**2-)**  Şimdi login üzerinden bir kullanıcı yaratalım.

 

```
CREATE USER MERYEM FOR LOGIN SARIYER
```

 

**3-)**  MERYEM kullanıcısına tablo oluşturma yetkisi veriyoruz.

 

```
GRANT CREATE TABLE TO MERYEM
```

 

**4-)** MERYEM kullanıcısına güncelleme, silme ve ekleme yetkisi veriyoruz.

 

```
GRANT INSERT,UPDATE,DELETE TO MERYEM
```

 

**5-)** Öğrenciler tablosu üzerinde SELECT komutunu kullanma yetkisini tüm kullanıcılara veriyoruz.

 

```
GRANT SELECT ON ogrenciler TO *.*
```

 

**6-)** Öğrenciler tablosu üzerinde SELECT komutunu kullanma yetkisini, diğer kullanıcılara da aynı yetkiyi verebilecek şekilde, Gizem adlı kullanıcıya veriyoruz.

 

```
GRANT SELECT ON ogrenciler TO Gizem WITH GRANT OPTION
```

 

**7-)**  MERYEM kullanıcımızın "öğrenciler" tablosundan select çekebilmesine izin verelim.

 

```
GRANT SELECT ON ogrenciler TO MERYEM
```

 

**8-)** MERYEM kullanıcısına öğrenciler tablosu üzerinde select ve insert hakkı veriyoruz. Ama with grant option ifadesinden dolayı, MERYEM kullanıcısı da, başkasına da bu yetkiyi verebilir.

 

```
GRANT SELECT,INSERT ON ogrenciler TO MERYEM WITH GRANT OPTION
```

 

### **Deny Komutu**

 

- GRANT komutunun tersidir.
- Yetkileri engeller.

 

#### Kullanım Şekli

 

DENY (ALL | izinler) TO (izinVerilenler)

 

**1-)** MERYEM kullanıcısına tablo yaratmayı yasakladık.

 

```
DENY CREATE TABLE TO MERYEM
```

 

**2-)** MERYEM kullanıcısının öğrenciler tablosunda INSERT ve SELECT kullanmasını engelledik.

 

```
DENY INSERT, SELECT ON ogrenciler TO MERYEM
```

 

### **Revoke Komutu**

 

- GRANT ile değiştirdiğimiz hakları eski haline döndürmek için kullanılır.

 

#### Kullanım Şekli

 

REVOKE (all | izinler) TO/FROM (izinVerilenler)

 

- **Revoke** yetki_adı
- **O** n nesne_adı
- **From** { kullanıcı_adı | PUBLIC | rol_adı }
- **Yetki_Adı** : Geri alınacak olan erişim yetkisidir.
- **Nesne_Adı** : Üzerinde yetki geri alınacak olan tablo, View, Stored Proc gibi bir veritabanı nesnesini gösterir.
- **Kullanıcı_Adı** : Yetkisi geri alınacak kullanıcının adını gösterir.
- **Public** : Bütün kullanıcılardan yetkiyi geri almak için kullanılır.
- **Rol_Adı** : Bir grup için toplanan yetkileri gösterir.

 

**1-)** MERYEM kullanıcısına verilen tüm yetkileri kaldırır.

 

```
REVOKE ALL ON REGION TO MERYEM
```

 

Evet arkadaşlar sizlerle bir çok sql sorgularını inceledik. Dilerseniz **Grant, Deny, Revoke komutları**  dışında  **[Select](https://webodasi.com/select-ile-listeleme-islemleri/)** , [İnsert](https://webodasi.com/sql-insert-ile-veri-ekleme-islemi/), [Update, Delete](https://webodasi.com/sql-update-ve-delete-komutu/), [Create, Alter, Drop](https://webodasi.com/sql-create-alter-ve-drop-komutu/) komutlarına tekrar göz gezdirebilirsiniz. Sql Sorgularının genel yapısını incelemek isterseniz [linki](https://webodasi.com/sql-sorgulari/)tıklamanız yeterli olacaktır. Yabancı kaynaklardan da bakabilmeniz için buraya [linki](https://sqlstudies.com/2016/05/04/grant-deny-revoke/#:~:text=GRANT%20applies%20a%20positive%20permission,opposite%20of%20GRANT%20and%20DENY.) bırakıyorum.

 

Hoşça Kalın :)
