MySQL de kullanıcı oluşturulması ve yetkilendirmeler

MySQL, üzerinde oluşturulan veritabanlarına ve hatta tablolarına belirlediğimiz kullanıcıların belirlediğimiz yetkiler dahilinde erişimini kontrol altında tutmamız için kapsamlı bir yapı sunmuştur. Sizde bilirsinizki veritabanlarında tutulan datalarımızın büyük bir kısmı bizim için değerli ve başkaları tarafından erişimini engellemek için birçok yöntemler aramakta ve kurgulamarımızı bu yöntemler çerçevesinde gerçekleştirmekteyiz. Ancak bazen problem olabilecegini tahmin edemedigimiz anlık işlemler, 3. şahısların sistemimize kolaylıkla erişimine sebep olabilmektedir. Sırasıyla MySQL üzerinde kullanıcı işlemlerinin nasıl gerçekleştirildiğini anlatalım.

1. MySQL'de yeni kullanıcı oluşturma: 

Yeni kullanıcı oluşturulurken 3 parametrenin setlenmesi gerekmektedir: kullanıcı adışifrehost.
kullanıcı adı : Bu alanın girilmesi zorunludur. Yeni eklenen kullanıcı adını temsil etmektedir. Herhangi bir yetkilendirme verilmek istenildiğinde veritabanları üzerinde bu parametre kullanılmaktadır. 
şifre : Bu alan zorunlu değildir. Ancak güvenlik açısından şifre setlenmesi daha iyi olacaktır. Aksi takdirde bu kullanıcı üzerinden bazı kişiler sisteminize erişim yapabilirler. Tabiki sadece bu kullanıcı için setlenmiş veritabanları için bu işlem gerçekleştirilecektir. Ancak tedbir açısından her zaman setlenmesi gerekmektedir.
host : Bu kullanıcının veritabanına nereden erişim yapabileceği ile alakalı alandır.
Örnek bir kullanıcı  oluşturma kodu şu şekildedir: 
 CREATE USER 'kullanıcı adı'@'localhost' IDENTIFIED BY 'şifre'
2. MySQL'de kullanıcı silme: 

Herhangi bir kullanıcının silinmesinde kullanıcı adı parametresi kullanılmaktadır. Örnek bir kullanıcı silme kodu şu şekildedir: 
DROP USER 'kullanıcı adı';
3. MySQL'de kullanıcı listeleme: 

Veritabanınıza bağlı tüm kullanıcıları ve bağlandığı host verilerini görmek için ise aşağıda bulunan kod parçacığını kullanabilirsiniz: 
 SELECT host, user FROM mysql.user;
4. MySQL'de kullanıcı yetkilendirme: 

Herhangi bir kullanıcının belirlemiş olduğumuz bir tabloya erişimi ile alakalı sorgulamada kullanılan parametreler şunlardır: veritabanı ismi, tablo ismi, kullanıcı adı ve host.
veritabanı ismi : Kullanıcının hangi veritabanı ile ilişkilendirildiğinde kullanılmaktadır.Eğer kullanıcı tüm veritabanları ile ilişkilendirilmek isteniyorsa '*' kullanılması yeterlidir. Ancak tüm veritabanları degilde belirlediğimiz veritabanlarının erişimi güvenlik açısından daha iyi olacaktır. 
tablo ismi : Kullanıcının veritabanında belirli tablolara erişimini sağlamada kullanılabilmektedir. Bu alan veritabanı isminde kullanıldığı gibi '*' ile veritabanına ait tüm tablolara yetki verebilmektedir. Ayrıca sadece belirli tablolara erişimin sağlanmasında da kullanılabilmektedir.
kullanıcı adı : Bu alanın girilmesi zorunludur. Kullanıcı adı yazılarak hangi kullanıcının hangi tablo ile yetkilendirildiği belirlenmektedir.
host : Bu kullanıcının veritabanına nereden erişim yapabileceği ile alakalı alandır.
 
GRANT ALL PRIVILEGES ON 'veritabanı ismi' . 'tablo ismi' TO 'kullanıcı adı'@'localhost';

Belirlediğimiz kullanıcıya tüm veritabanına ve tablolarına erişimi verebildiği kod parçacığı şu şekildedir:
 
GRANT ALL PRIVILEGES ON * . * TO 'kullanıcı adı'@'localhost';

Kullanıcılarla alakalı yapılan yetkilendirmelerden sonra yeni yapılandırmaların etkili olması için yetkilendirmeleri aşağıda bulunan kodlama ile yenilendirmemiz gerekmektedir. Böylelikle yapılan düzenlemeler etkin hale gelmiş olur
 
FLUSH PRIVILEGES;
comments powered by Disqus