### MySQL’de Kullanıcı Yönetimi ve Şifre Değiştirme
MySQL, kullanıcı hesaplarını yönetmek ve şifreleri değiştirmek için çeşitli komutlar sunar. Bu yazıda, **yeni kullanıcı oluşturma**, **şifre değiştirme** ve **güvenlik önlemleri** ile ilgili temel bilgileri ve kullanım örneklerini ele alacağız.
—
### Yeni Kullanıcı Oluşturma
MySQL’de yeni bir kullanıcı oluşturmak ve bu kullanıcıya yetkiler vermek oldukça kolaydır.
#### Temel Kullanıcı Oluşturma
Yeni bir kullanıcı oluşturmak için aşağıdaki komutu kullanabilirsiniz:
“`sql
CREATE USER ‘my_new_user’@’localhost’ IDENTIFIED BY ‘test_password’;
“`
Bu komut, `my_new_user` adında bir kullanıcı oluşturur ve şifresini `test_password` olarak ayarlar.
#### Kullanıcıya Yetki Verme
Yeni oluşturulan kullanıcıya belirli bir veritabanı üzerinde yetkiler vermek için `GRANT` komutunu kullanabilirsiniz:
“`sql
GRANT ALL PRIVILEGES ON my_db.* TO ‘my_new_user’@’localhost’;
“`
Bu komut, `my_new_user` kullanıcısına `my_db` veritabanı üzerinde tüm yetkileri verir.
#### Şifreyi Hashleyerek Kullanıcı Oluşturma
Şifreyi hashleyerek kullanıcı oluşturmak için `PASSWORD` fonksiyonunu kullanabilirsiniz:
“`sql
SELECT PASSWORD(‘test_password’); — Hash değerini alır
CREATE USER ‘my_new_user’@’localhost’ IDENTIFIED BY PASSWORD ‘*4414E26EDED6D661B5386813EBBA95865DBC4728’;
“`
—
### Şifre Değiştirme
MySQL’de kullanıcı şifrelerini değiştirmek için farklı yöntemler bulunmaktadır. Bu işlem, özellikle güvenlik açısından önemlidir.
#### Linux’ta Root Şifresini Değiştirme
1. MySQL sunucusunu durdurun:
“`bash
sudo /etc/init.d/mysql stop
“`
2. MySQL’i yetkilendirme sistemi olmadan başlatın:
“`bash
sudo mysqld_safe –skip-grant-tables &
“`
3. MySQL’e root olarak bağlanın:
“`bash
mysql -u root
“`
4. Yeni şifreyi ayarlayın:
“`sql
FLUSH PRIVILEGES;
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘new_password’;
FLUSH PRIVILEGES;
exit;
“`
5. MySQL sunucusunu yeniden başlatın:
“`bash
sudo /etc/init.d/mysql start
“`
#### Windows’ta Root Şifresini Değiştirme
1. Komut İstemi’ni yönetici olarak başlatın.
2. MySQL’in kurulu olduğu dizine gidin:
“`bash
cd C:\mysql\bin
“`
3. MySQL komut satırına bağlanın:
“`bash
mysql -u root mysql
“`
4. Yeni şifreyi ayarlayın:
“`sql
SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘new_password’);
“`
—
### MySQL 5.7+ için Varsayılan Root Şifresini Kurtarma
MySQL 5.7 ve sonrasında, sunucu ilk başlatıldığında root şifresi otomatik olarak oluşturulur ve `mysqld.log` dosyasına kaydedilir.
#### Varsayılan Şifreyi Bulma
Varsayılan şifreyi bulmak için aşağıdaki komutu kullanabilirsiniz:
“`bash
sudo grep ‘temporary password’ /var/log/mysqld.log
“`
#### Şifreyi Değiştirme
Varsayılan şifre ile MySQL’e bağlanın ve yeni şifreyi ayarlayın:
“`bash
mysql -uroot -p
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘MyNewPass51’;
“`
—
### Güvenlik Önlemleri
MySQL’de güvenliği artırmak için aşağıdaki önlemleri alabilirsiniz:
– **Root Kullanıcısını Sınırlandırma:** Root kullanıcısını sadece `localhost` üzerinden erişime izin verin.
“`sql
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’localhost’;
“`
– **Uygulama Kullanıcılarını Sınırlandırma:** Uygulama kullanıcılarını sadece belirli bir veritabanı üzerinde yetkilendirin.
“`sql
GRANT SELECT, INSERT, UPDATE, DELETE ON my_db.* TO ‘app_user’@’%’;
“`
– **Stored Procedure Kullanımı:** Root yetkisi gerektiren işlemler için stored procedure’ler kullanın ve `SECURITY DEFINER` ile sınırlandırın.
—
### Sonuç
MySQL’de kullanıcı yönetimi ve şifre değiştirme işlemleri, veritabanı güvenliği açısından oldukça önemlidir. Yeni kullanıcılar oluşturarak ve şifreleri düzenli olarak güncelleyerek, veritabanınızı yetkisiz erişimlere karşı koruyabilirsiniz. Ayrıca, güvenlik önlemleri alarak veritabanınızın güvenliğini daha da artırabilirsiniz.