İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

MySQL Veritabanı Yönetim Sistemi ve SQL

MySQL

MySQL, çok-kanallı (multi-threaded), çok kullanılıcılı (multi-user), hızlı ve sağlam (robust) bir veritabanı yönetim sistemidir. Kaynak kodu açık olan MySQL'in pekçok platform için binaryleri de hazır bulunmaktadır. ODBC sürücüleri de mevcuttur. Çok sayıda tablo ve kayıttan oluşan büyük ölçekli veri tabanları oluşturularak kolayca yönetilebilmesine imkan sağlanmıştır.

MySQL'in kendi sitesine aşağıgaki adresten ulaşılabilir:

MySQL veritabanı yönetim sistemini hiyerarşik olarak şu sırada düşünebiliriz:

Veri Tipleri:

Tablolar:

Veritabanları

Veri Tanımlama ve Değiştirme (Data Definition and Manipulation):

Erişim Hakları (Privileges):

MySQL erişim haklarını mysql adlı özel bir veritabanında tutar. Bu veritabanı birtakım erişim hakkı tablolarından oluşur (grant tables):

user tablosu kullanıcıların sunucuya hangi host makinadan hangi haklarla bağlanabileceğini belirler. Bu tabloda bulunan haklar kullanıcıya global olarak verilir ve verilen haklar istisnasız tüm veritabanları üzerinde etkili olur. Host alanı ise tam tersine bağlanabilecek tüm hostları içermelidir. Diğer tablolarda bunların dışında host alanı girilmesi anlam taşımayacaktır.

db tablosu kullanıcıların belirli bir veritabanına hangi haklarla erişebileceğini gösterir. Global olarak sahip olunmayan hakları verebilir, ancak global olarak sahip olunan hakları kaldıramaz. Yani user tablosunda kullanıcıya verilen hakları geri alamaz ama belirli bir veritabanına ait olmak üzere yeni haklar verebilir. Burada host alanı user tablosunda verilen host aralığını daraltabilir. Yani bir kullanıcı user tablosundaki host aralığının kapsadığı bir host'tan sunucu bağlantısı kursa da, db tablosunda belirli bir veritabanına kullanıcının bu hosttan erişimine ilişkin bir satır (kayıt) yoksa veritabanına erişemez. Burada host alanı için için tipik olarak '%' kullanılabilir. Böylece sunucu bağlantısı sağlayabilen tüm hostlar veritabanına kabul edilirler.

host tablosu db tablosundaki 'host' alanına değer girilmezse anlam kazanır. Bu durumda ilgili veritabanına bağlanabilecek hostlar host tablosundan taranır ve erişim haklarına bakılır. Burada haklar açısından user ve db tabloları arasındaki ilişkiden farklı br durum vardır. Öyle ki burada db ve host tabloları arasında adeta bir AND işlemi yapılır.

table-priv tablosu tablo düzeyinde erişim haklarını belirler. (Sadece grant, revoke komutları ile değiştirilmeli) column-priv tablosu tablo kolonları düzeyinde erişim haklarını belirler. (Sadece grant, revoke komutları ile değiştirilmeli) Bu tablolarda kullanıcının bir erişim hakkı varsa daha alt düzey tablolara bakılmaz. Yapılan değişiklikleri etkinleştirmek için flush privileges komutu kullanılır.

Veri değiştirme komutları ile mysql veritabanı üzerinde değişiklik yaparak kullanıcı hakları değiştirilebileceği gibi daha emniyetli metod olarak grant ve revoke komutları kullanılabilir.

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır