MySQL Veritabanı Güvenliği

MySQL Veritabanı Güvenliği MySQL Veritabanınızda bilgileriniz güvende mi?

Bilgisayarınıza kurduğunuz veya internette host ettirdiğiniz bazı uygulamalar ücretsiz MySQL veritabanını kullanırlar. MySQL veritabanı belli bir porttan sunucu olarak izmet verdiği için internetten ulaşıma da imkan sağlamaktadır.

Belki de oldukça kritik olan bilgilerinizin tutulduğu bu veritabanında güvenliği nasıl sağlayacaksınız? Bunun için bir kaç küçük ama önemli bilgi işe yarayacaktır.

  • EÄŸer birden fazla uygulama/veritabanınız varsa öncelikle her veritabanı için bir veritabanı kullanıcısı oluÅŸturun.
  • Her kullanıcıya sadece ilgili veritabanına eriÅŸim hakkı verin.
  • Uygulamanız ve veritabanınız aynı makina üzerinde ise localhost dışında veritabanı eriÅŸimini kaldırın.
  • Uygulamanız ve veritabanınız farklı makinalar üzerinde ise sadece uygulamının bulunduÄŸu makinadan (ip adresinden) eriÅŸime izin verin.
  • Root kullanıcısını silin ya da root ÅŸifresini hiç bir uygulamada kullanmayın, sadece siz bilin.
  • Anonim eriÅŸimi muhakkak kaldırın.
  • Düzenli backup alın.

Bu işlemleri yapabilecek bir grafik arayüz programına sahip değilseniz, komut satırından da yapabilirsiniz:


Bir MySQL database’indeki kullanıcıların listesini almak:

mysql> use mysql;
Database changed
mysql> select user,host from user;

+-------------+-----------+
| user        | host      |
+-------------+-----------+
| defaultuser | %         |
| root        | localhost |
+-------------+-----------+
2 rows in set (0.00 sec)
mysql>

Bir MySQL database’ine kullanıcı eklemek:

shell> mysql -u root --password=sifre
mysql> create user kullanici@localhost;

Bir MySQL database’inden kullanıcı silmek:

shell> mysql -u root --password=sifre
mysql> drop user kullanici@localhost;

Bir MySQL database kullanıcısının şifresini degistirmek:

shell> mysql -u root --password=sifre
mysql> SET PASSWORD FOR 'kullanici'@'localhost' = PASSWORD('yenisifre');

veya

mysql> SET PASSWORD FOR 'kullanici'@'host_name' = PASSWORD('yenisifre');

Bir MySQL database’e anonim (kullanıcısız ve ÅŸifresiz) eriÅŸimi kaldırmak:

shell> mysql -u root --password=sifre
mysql> DELETE FROM mysql.user WHERE User = '';
mysql> FLUSH PRIVILEGES;

Bir MySQL database’ine root (tam yetkili) eriÅŸimi kaldırmak (tavsiye edilmez, enazından root@localhost’u silmeyin):

shell> mysql -u root --password=sifre
mysql> DELETE FROM mysql.user WHERE User = 'root';
mysql> FLUSH PRIVILEGES;

Bir kullanıcıya bir MySQL database’ini sadece lokalden kullanma yetkisi vermek:

shell> mysql -u root --password=sifre
mysql> GRANT ALL PRIVILEGES ON veritabaniadi.* TO 'kullanici'@'localhost' WITH GRANT OPTION;

Bir MySQL database kullanıcısına tüm uzak makınalardan bağlanma hakkı vermek:

shell> mysql -u root --password=sifre
mysql> create user 'kullanici'@'%';
mysql> GRANT ALL PRIVILEGES ON veritabaniadi.* TO 'kullanici'@'%' WITH GRANT OPTION;

Bir MySQL database kullanıcısına belli bir ip’den baÄŸlanma hakkı vermek:

shell> mysql -u root --password=sifre
mysql> create user kullanici@81.181.34.34;
mysql> GRANT ALL PRIVILEGES ON veritabaniadi.* TO 'kullanici'@'81.181.34.34' WITH GRANT OPTION;

Bir MySQL database kullanıcısına sadece lokalden bağlanma hakkı vermek (makina dışından bağlantıyı kapatmak):

shell> mysql -u root --password=sifre
mysql> DELETE FROM mysql.user WHERE User = 'kullanici';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'kullanici'@'localhost' identified by sifre WITH GRANT OPTION;

Bir MySQL database’inin yedeÄŸini almak:

shell>mysqldump -u kullanici --password=sifre  --all-databases > backup.sql


Cevapları RSS 2.0 yoluyla takip edebilirsiniz. Cevap bırakabilirsiniz., or Trackback ile sitenizden geri çağırım yapın.

Cevap yazın...



visitor stats
eXTReMe Tracker