Welcome to My Blog 👋

Java, Spring Framework, Microservices, Docker, Kubernetes, AWS and Others 🚀
Follow Me

SQL - Kullanıcı Yetkilendirme ve Rol Tanımlama (Authorization)



  October 13, 2018    Labels:,,,,,,,,, 

Kullanıcı Yetkilendirme

Sql tablolarımızı birden fazla kullanıcı kullanabilir ve bu kullanıcıların tablolar üzerinde tüm işlemleri yapmasını genelde istemeyiz. Bu gibi durumlarda kullanıcılara yetkiler tanımlayarak tablolar üzerinde yaptıkları işlemleri sınırlayabiliriz.

Tablolar Üzerinde Hangi İşlemler İçin Yetki Tanımlanabilir?
  • Read (Tablodan veri okuma)
  • Insert (Tabloya veri yazma)
  • Update (Tablodaki verileri güncelleme)
  • Delete (Tablodaki verileri silme)
  • Index (Tablo üzerinde index tanımlayabilme) 
  • Resources (Tablolar üzerinde ilişki tanımlayabilme)
  • Alteration (Tablonun değiştirilmesi)
  • Drop (Tablonun silinmesi)

Tablo Üzerinde Nasıl Yetki Tanımlanır?

GRANT yetki ON tablo_adi TO kullanicilar

Örnek:

GRANT delete ON ogrenciler TO Berkay, Ahmet

Not: Yetki alanında 'all privileges' ifadesi kullanılarak tüm yetkiler tanımlanabilir.

Verilen Yetkiler Nasıl Geri Alınır?

Verilen yetkilerin geri alınması için revoke ifadesi kullanılır.

REVOKE yetki ON tablo_adi FROM kullanicilar

Örnek:

REVOKE delete ON ogrenciler FROM Berkay

Rol Tanımlama

Genellikle veritabanı üzerinde işlem yapan kullanıcıların benzer yetkileri olur. Yani aynı işi yapan birden çok kişi olabilir. Örnek verecek olursak veritabanı üzerinden veri okuyarak rapor oluşturan onlarca kişi olabilir. Bu gibi durumlarda her kullanıcı için ayrı ayrı yetki tanımlaması yapmak yerine rol tanımlaması yapılabilir. Bu rollere yetki tanımlaması yapılabilir ve kullanıcılara yetki vermek yerine rol verilebilir.

Rol Tanımlama Nasıl Yapılır?

CREATE ROLE rol_ismi  (Rol Oluşturma)

GRANT yetki ON tablo_adi TO rol_adi   (Role Yetki Atama)

GRANT rol_adi TO kullanicilar  (Role Kişi Atama)

Örnek:

CREATE ROLE raporlama_yapanlar

GRANT select ON siparisler TO raporlama_yapanlar

GRANT raporlama_yapanlar TO Berkay, Ahmet, Ali

Rol Tanımından yetki Nasıl Silinir?

REVOKE yetki FROM rol_adi

Rol Tanımı Nasıl Silinir?

DROP ROLE rol_adi

View Üzerine Rol Tanımlaması Yapılabilir mi?

View üzerine rol tanımlaması yapmak mümkündür. Tablo adı yerine view adı yazılarak view üzerine rol tanımlaması yapılabilir.


1 comment: