SQL Notları: Kullanıcı Yönetimi ve Şifre Değiştirme

### 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.

Yorum Yazın