Yeni Kullanıcı Oluşturma
Yeni bir kullanıcı oluşturabilmek için önce Root hesabıyla MySQL’e giriş yapmalıyız. Root, sistemde tüm yetkilere sahip yönetici hesabıdır.
mysql -u root -p
Bu komutu girdikten sonra MySQL sizden root şifresini isteyecektir. Şifreyi doğru şekilde girdiğinizde, MySQL komut satırına erişim sağlanır ve kullanıcı oluşturma işlemlerine geçilebilir.

Yeni bir kullanıcı eklemek için aşağıdaki komutu kullanabiliriz.
CREATE USER 'kullanici_adi'@'localhost' IDENTIFIED BY 'guclu_sifre';
Burada kullanici_adi, oluşturmak istediğimiz kullanıcı adını belirtir.
localhost ifadesi, bu kullanıcının yalnızca yerel bağlantılar üzerinden erişim sağlayabileceğini gösterir.
guclu_sifre ise kullanıcı için belirleyeceğimiz güvenli parolayı temsil eder.
Eğer bu kullanıcıya uzak bağlantı izni vermek istiyorsak şu komutu uygulayabiliriz:
CREATE USER 'kullanici_adi'@'%' IDENTIFIED BY 'guclu_sifre';
MySQL üzerinde kullanıcı oluşturma ve yetkilendirme işlemleri, MariaDB üzerinde de aynı mantıkla çalışır.
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.
GRANT ALL PRIVILEGES ON veritabani_adi.* TO 'kullanici_adi'@'localhost';
Sadece okuma (SELECT) yetkisi vermek istiyorsak.
GRANT SELECT ON veritabani_adi.* TO 'kullanici_adi'@'localhost';
Yetkilendirme işlemlerinin etkin olması için şu komut mutlaka çalıştırılmalıdır.
FLUSH PRIVILEGES;
| Ayrıcalık | Eylem |
|---|---|
| ALL PRIVILEGES | Kullanıcıya veritabanı üzerinde tam erişim yetkisi verir. |
| INSERT | Tablolara yeni satırlar ekleyelim. |
| DELETE | Tablolardaki satırları silelim. |
| CREATE | Yeni tablolar veya veritabanları oluşturalım. |
| DROP | Tabloları ya da veritabanlarını tamamen kaldıralım. |
| SELECT | Tablolardaki verileri görüntüleyelim. |
| UPDATE | Tablolarda yer alan satırları güncelleyelim. |
| GRANT OPTION | Kullanıcıya diğer kullanıcılara da yetki verme izni tanımlayalım (genellikle root hesabı için ayrılır). |
MySQL Kullanıcı Yetkilerini Nasıl Görürüz
Bir MySQL kullanıcısına atanmış yetkileri görüntülemek için aşağıdaki komutu çalıştırabiliriz:
SHOW GRANTS FOR 'kullanici_adi'@'localhost';
Bu komut, ilgili kullanıcının sahip olduğu tüm izinleri detaylı biçimde listeler. Böylece hangi veritabanlarına erişim sağlayabildiğini ve hangi işlemleri yapabildiğini kolayca öğrenebiliriz.
Yetkileri Geri Alma veya Kullanıcıyı Silme
Bir kullanıcının erişim izinlerini kaldırmak için aşağıdaki SQL komutunu çalıştıralım:
REVOKE ALL PRIVILEGES ON veritabani_adi.* FROM 'kullanici_adi'@'localhost';
Bu komut, kullanıcının ilgili veritabanı üzerindeki tüm haklarını geri alır. Kullanıcı sistemde varlığını sürdürür, ancak artık belirtilen veritabanına erişim sağlayamaz.
Kullanıcıyı tamamen kaldırmak istiyorsak şu komutu çalıştırabiliriz:
DROP USER 'kullanici_adi'@'localhost';
Bu işlem, kullanıcının sistemden tamamen silinmesini sağlar. Silme sonrası kullanıcı bağlantı kuramaz ve sahip olduğu tüm yetkiler otomatik olarak temizlenir.
Eğer veritabanınızı SQLite gibi bir yapıdan MySQL’e aktardıysanız, yeni kullanıcı izinlerini tekrar tanımlamak veri güvenliği açısından kritik bir adımdır.
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.
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'kullanici_adi'@'localhost';
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ı.