MySQL Kullanıcısı Oluşturma ve Yetkilendirme

MySQL sistemlerinde birden fazla kullanıcıyla çalışılıyorsa, her biri için ayrı kullanıcı hesapları tanımlamak gerekir. Bu uygulama, erişim yönetimini kolaylaştırırken güvenlik standartlarını da korur.

Yeni Kullanıcı Oluşturma

Yeni bir kullanıcı tanımlamak için root hesabıyla MySQL’e bağlanmak gerekir. Root hesabı, sistem üzerindeki tüm işlemleri yönetme yetkisine sahip kullanıcıdır.

Bu komutu yazdığınızda sistem sizden root şifresini ister. Parola onaylandıktan sonra MySQL komut satırına erişilir ve kullanıcı oluşturma adımları uygulanabilir.

Yeni bir kullanıcı eklemek için aşağıdaki SQL ifadesi kullanılabilir.

Komutta geçen kullanici_adi, oluşturulacak kullanıcı adını belirtir.
localhost ifadesi, erişimin sadece yerel ağ üzerinden yapılabileceğini gösterir.
guclu_sifre, kullanıcının güvenli bir parola ile tanımlanmasını sağlar.

Eğer bu kullanıcıya uzaktan erişim yetkisi vermek istiyorsak şu komutu girmeliyiz:

MySQL sistemlerinde gerçekleştirilen kullanıcı oluşturma işlemleri, MariaDB için de aynı biçimde geçerlidir.

Mysql Kullanıcısına Yetki Vermek

Yeni kullanıcı oluşturulduktan sonra bu kullanıcıya hangi veritabanına erişeceğini ve hangi işlemleri yapabileceğini belirtmek gerekir.

Örneğin belirli bir veritabanına tam erişim yetkisi vermek için.

Sadece okuma (SELECT) yetkisi vermek istiyorsak.

Yetkilendirme işlemlerinin etkin olması için şu komut mutlaka çalıştırılmalıdır.

AyrıcalıkEylem
ALL PRIVILEGESKullanıcıya veritabanı üzerinde tam erişim yetkisi verir.
INSERTTablolara yeni satırlar ekleyelim.
DELETETablolardaki satırları silelim.
CREATEYeni tablolar veya veritabanları oluşturalım.
DROPTabloları ya da veritabanlarını tamamen kaldıralım.
SELECTTablolardaki verileri görüntüleyelim.
UPDATETablolarda yer alan satırları güncelleyelim.
GRANT OPTIONKullanıcıya diğer kullanıcılara da yetki verme izni tanımlayalım (genellikle root hesabı için ayrılır).

MySQL Yetki Görüntüleme Komutu

MySQL üzerinde bir kullanıcının yetkilerini görüntülemek için şu komutu çalıştırmak yeterlidir:

Komutun çıktısı, kullanıcının sahip olduğu tüm erişim izinlerini listeler. Bu sayede, kullanıcıya hangi veritabanları ve işlemler için yetki verildiğini açık şekilde görebiliriz.

Yetkileri Geri Alma veya Kullanıcıyı Silme

Bir kullanıcının belirli bir veritabanına ait tüm yetkilerini kaldırmak için şu SQL komutu kullanılabilir:

Bu komut, kullanıcının belirtilen veritabanı üzerindeki tüm erişim haklarını iptal eder. Kullanıcı sistemde kalır, ancak artık o veritabanında işlem yapamaz.

Kullanıcıyı sistemden tamamen silmek için aşağıdaki komutu çalıştırabiliriz:

Bu işlem, kullanıcı hesabını tamamen kaldırır. Silinen kullanıcıyla bağlantı kurmak mümkün değildir ve tüm yetkiler otomatik olarak temizlenir.

Eğer veritabanınızı SQLite ortamından MySQL’e taşıdıysanız, bu kullanıcı izinlerini yeniden tanımlamak güvenli ve kesintisiz bir geçiş için gereklidir.

Sıkça Sorulan Sorular

MySQL kullanıcı yetkilerini nasıl sıfırlayabilirim?

Yetkileri sıfırlamak için aşağıdaki komutu kullanabilirsiniz.

Bu komut, kullanıcının tüm erişim izinlerini kaldırır ve MySQL’de yeniden tanımlama yapmanızı sağlar.

Yeni kullanıcı uzak bağlantı yapamıyor, neden?

MySQL yapılandırma dosyasında bind-address parametresi muhtemelen 127.0.0.1 olarak ayarlıdır. Bu değeri 0.0.0.0 olarak değiştirip MySQL servisini yeniden başlatarak tüm IP adreslerinden bağlantıya izin verebilirsiniz.

Bir kullanıcıyı hem yerel hem uzaktan erişim için tanımlayabilir miyim?

Bunun için aynı kullanıcı adıyla iki farklı hesap oluşturabilirsiniz:
biri localhost, diğeri % üzerinden tanımlanmalıdır. Böylece kullanıcı hem yerelden hem de uzaktan bağlanabilir.

FLUSH PRIVILEGES komutunu neden çalıştırmam gerekiyor?

Bu komut, yapılan yetki değişikliklerinin MySQL tarafından hemen uygulanmasını sağlar.
Aksi halde değişiklikler, MySQL servisi yeniden başlatılana kadar geçerli olmayabilir.

Kullanıcı oluştururken hata alıyorum, ne yapmalıyım?

Access denied hatası genellikle root yetkisi olmadan işlem yapmaya çalışıldığında görülür.
Root hesabı ile oturum açtığınızdan ve CREATE USER izninizin tanımlı olduğundan emin olunmalı.

Yorum yapın