MySQL Kullanıcı işlemleri (Ekleme, Silme)

Cengizhan Çalışkan
2 min readFeb 21, 2018

--

MySQL kullanırken genelde varsayılan kullanıcı olan “root” kullanıcısı ile kullanıyoruz. Eğer farklı bir kullanıcı oluşturmak isterseniz (root harici bir kullanıcı ile app’lerimize yetki vermek daha sağlıklı olacaktır.) aşağıda anlatacağım yollar ile yapabilirsiniz.

İlk olarak mysql’e bağlanmak için

mysql -u root -p

MySQL Kullanıcı Listeleme

Host bölümünde wildcard yani “%” işareti var ise bu kullanıcı mysql’e heryerden erişebilir.

Aşağıdaki örneklerimizde kullanacağımız kullanıcı adı ryan’dır.

SELECT Host, User FROM mysql.user;# aşağıdaki gibi bir sonuç göreceksiniz
+-----------+------------------+
| Host | User |
+-----------+------------------+
| % | root |
| % | babel |
| localhost | debian-sys-maint |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
| localhost | babel |
+-----------+------------------+

MySQL Kullanıcı Ekleme

  • Local’den erişecek bir kullanıcı eklemek;
CREATE USER ‘ryan’@’localhost’ IDENTIFIED BY ‘babel’;
GRANT ALL PRIVILEGES ON *.* TO ‘ryan’@’localhost’ WITH GRANT OPTION;
  • Heryerden erişecek bir kullanıcı eklemek;
CREATE USER ‘ryan’@’%’ IDENTIFIED BY ‘babel’;
GRANT ALL PRIVILEGES ON *.* TO ‘ryan’@’%’ WITH GRANT OPTION;

GRANT ALL komutu ile kullanıcımıza yetki veriyoruz.

Eğer sadece belirli tabloya veya readonly yetki vermek istiyorsak

  • Sadece Read-only erişim yetkisi vermek;
GRANT SELECT ON *.* TO ‘ryan’@’localhost’;
  • Sadece belirli bir database’e izin vermek için;
GRANT SELECT ON DATABASE_ADI.* TO ‘ryan’@’localhost’;
  • Standart bir kullanıcı yetkisi vermek için;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON DATABASE_ADI.* TO ‘ryan’@’localhost’;

Kullanıcı Silme

  • Local için eklediğimiz kullanıcı
DROP USER ‘ryan’@’localhost’;
  • Wildcard olarak eklediğimiz kullanıcı;
DROP USER ‘ryan’@’%’;

Kullanıcı Yetkilerini Görme

  • Local için eklediğimiz kullanıcı
SHOW GRANTS FOR ‘ryan’@’localhost’;# Aşağıdaki gibi bir sonuç göreceksiniz
+------------------------------------------------------+
| Grants for ryan@localhost |
+------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'ryan'@'localhost' WITH GRANT OPTION |
+------------------------------------------------------+

Eğer kullanıcı yok ise aşağıdaki gibi bir hata gelir,

ERROR 1141 (42000): There is no such grant defined for user ‘ryan’ on host ‘localhost’

Mysql arayüzünden çıkmak için

\q;veyaexit;

--

--

Cengizhan Çalışkan

Software & Data Developer — #AI, #MachineLearning, Just simple developer with data skills, amateur guitarist