15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın
01.11.2024
1 +1

MySQL’de Yeni Bir Kullanıcı Oluşturma ve İzinleri Ayarlama

MySQL, dünyanın en yaygın olarak dağıtılan ilişkisel veritabanı yönetim sistemlerinden biri olmaya devam etmektedir ve küçük kişisel projelerden kurumsal ölçekli uygulamalara kadar her şeyi güçlendirir. Bir geliştirici, sistem yöneticisi veya kendi altyapısını yöneten bir işletme sahibi olsanız da, MySQL kullanıcıları oluşturmayı ve izinlerini yapılandırmayı anlamak, güvenli ve iyi organize edilmiş bir veritabanı ortamını korumak için vazgeçilmez bir beceridir.

Zayıf kullanıcı yönetimi, veritabanı ihlallerinin önde gelen nedenlerinden biridir. Aşırı ayrıcalık verme, kimlik bilgilerini yeniden kullanma veya varsayılan hesapları etkin bırakma, tüm veri katmanınızı gereksiz riske maruz bırakabilir. Bu kılavuz, MySQL’e giriş yapmaktan izinleri doğrulamaya kadar tam süreci — açık komutlar, pratik örnekler ve her adımda güvenlik en iyi uygulamaları ile birlikte — size rehberlik eder.

MySQL Kullanıcı Yönetimi Neden Önemlidir

Komutlara dalmadan önce, bunun *neden* önemli olduğunu anlamaya değer. MySQL, en az ayrıcalık ilkesi üzerinde çalışır: her kullanıcı yalnızca gerçekten ihtiyaç duyduğu belirli veritabanlarına, tablolara ve işlemlere erişebilmelidir. Bu, tehlikeye atılan bir hesabın etki alanını en aza indirir ve denetimi çok daha kolay hale getirir.

MySQL’i yönetilen bir VPS Hosting planında veya Dedicated Server‘da çalıştırıyorsanız, MySQL örneğinize tam kök düzeyinde erişime sahipsiniz ve kullanıcı oluşturma ve izin yönetimi üzerinde tam kontrole sahipsiniz. cPanel ile VPS gibi birçok kontrol paneli ortamı, MySQL yönetimi için grafik bir arayüz sağlar ve burada açıklanan komut satırı yaklaşımını tamamlayabilir.

Ön Koşullar

Başlamadan önce, aşağıdakilere sahip olduğunuzdan emin olun:

  • MySQL 5.7+ veya MySQL 8.0+ sunucunuzda yüklü ve çalışıyor
  • Kök erişim veya GRANT OPTION ayrıcalıklarına sahip bir MySQL süper kullanıcı hesabına erişim
  • Terminal erişimi (Linux/macOS) veya Komut İstemi / PowerShell (Windows)

Adım 1: MySQL’e Giriş Yapın

Kullanıcıları ve izinleri yönetmek için yeterli yönetim ayrıcalıklarına sahip bir kullanıcı olarak kimlik doğrulaması yapmalısınız. Çoğu durumda, bu root hesabıdır.

Terminal veya Komut İstemini Açın

  • Linux / macOS: Terminal uygulamanızı açın
  • Windows: Komut İstemini veya PowerShell’i açın

MySQL Sunucusuna Bağlanın

Aşağıdaki komutu çalıştırın:

mysql -u root -p

Kök parolasını girmeniz istenecektir. Başarılı kimlik doğrulamadan sonra, MySQL istemini göreceksiniz:

mysql>

> Güvenlik ipucu: Uzak bir MySQL sunucusuna bağlanıyorsanız, ana bilgisayarı -h bayrağı ile belirtin:

> “`bash

> mysql -u root -p -h your_server_ip

> “`

Adım 2: Yeni Bir MySQL Kullanıcısı Oluşturun

MySQL kabuğunun içinde olduğunuzda, CREATE USER ifadesi ile yeni bir kullanıcı oluşturabilirsiniz.

Söz Dizimi

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

Parametre dökümü:

ParametreAçıklama
usernameYeni kullanıcıya atamak istediğiniz ad
hostKullanıcının bağlanmasına izin verilen ana bilgisayar. Yalnızca yerel erişim için localhost kullanın veya herhangi bir ana bilgisayar için joker karakter olarak % kullanın
passwordBu kullanıcı için güçlü, benzersiz bir parola

Örnek: Herhangi Bir Ana Bilgisayardan Erişilebilir Bir Kullanıcı Oluşturun

CREATE USER 'newuser'@'%' IDENTIFIED BY 'StrongP@ssw0rd!';

Örnek: Localhost ile Sınırlı Bir Kullanıcı Oluşturun

CREATE USER 'localuser'@'localhost' IDENTIFIED BY 'AnotherStr0ng#Pass';

> En iyi uygulama: Mümkün olan her yerde, kullanıcıları localhost veya belirli bir IP adresi ile sınırlayın, % kullanmaktan ziyade. Joker karakter ana bilgisayar erişimi, saldırı yüzeyinizi gereksiz yere artırır.

Kimlik Doğrulama Eklentileri Üzerine MySQL 8.0 Notu

MySQL 8.0, varsayılan kimlik doğrulama eklentisi olarak caching_sha2_password tanıttı ve bu, eski istemciler veya uygulamalarla uyumluluk sorunlarına neden olabilir. Gerekirse, kimlik doğrulama yöntemini açıkça ayarlayabilirsiniz:

CREATE USER 'newuser'@'%' IDENTIFIED WITH mysql_native_password BY 'StrongP@ssw0rd!';

Adım 3: Kullanıcıya İzin Verin

Bir kullanıcı oluşturmak, otomatik olarak herhangi bir veritabanına erişim vermez. GRANT ifadesi kullanarak açıkça ayrıcalıklar atamanız gerekir.

Söz Dizimi

GRANT privileges ON database.table TO 'username'@'host';

Parametre dökümü:

ParametreAçıklama
privilegesİzinlerin virgülle ayrılmış listesi (örn. SELECT, INSERT, UPDATE, DELETE) veya ALL PRIVILEGES
database.tableHibe kapsamı. Tüm veritabanları ve tablolar için *.* kullanın, belirli bir veritabanındaki tüm tablolar için dbname.* kullanın veya tek bir tablo için dbname.tablename kullanın
username@hostHedef kullanıcı hesabı

Yaygın MySQL Ayrıcalıkları

AyrıcalıkAçıklama
SELECTTablolardan veri oku
INSERTTablolara yeni satırlar ekle
UPDATEMevcut satırları değiştir
DELETETablolardan satırları kaldır
CREATEYeni veritabanları veya tabloları oluştur
DROPVeritabanlarını veya tabloları sil
INDEXDizinler oluştur veya bırak
ALTERTablo yapılarını değiştir
ALL PRIVILEGESTam erişim (dikkatli kullanın)
GRANT OPTIONKullanıcının diğerlerine ayrıcalıklar vermesine izin ver

Örnek: Belirli Bir Veritabanına Tam Erişim Verin

GRANT ALL PRIVILEGES ON exampledb.* TO 'newuser'@'%';

Örnek: Salt Okunur Erişim Verin

GRANT SELECT ON exampledb.* TO 'readonly_user'@'localhost';

Örnek: Tek Bir Tabloya Belirli İzinler Verin

GRANT SELECT, INSERT, UPDATE ON exampledb.orders TO 'app_user'@'localhost';

Örnek: Genel Ayrıcalıklar Verin (Dikkatli Kullanın)

GRANT ALL PRIVILEGES ON *.* TO 'admin_user'@'localhost' WITH GRANT OPTION;

> Uyarı: ALL PRIVILEGES ON *.* vermek, bir kullanıcıya süper kullanıcı eşdeğeri erişim sağlar. Bunu yalnızca güvenilir yönetim hesapları için saklayın.

Adım 4: İzinleri Temizleyin

Kullanıcı izinlerinde değişiklik yaptıktan sonra, MySQL’in değişiklikleri hemen tanıması için ayrıcalık tablolarını yeniden yüklemek iyi bir uygulamadır:

FLUSH PRIVILEGES;

> Not: Modern MySQL sürümlerinde (5.7.3+), FLUSH PRIVILEGES GRANT, REVOKE ve CREATE USER ifadelerinden sonra otomatik olarak tetiklenir. Ancak, mysql sistem tablolarında (INSERT veya UPDATE aracılığıyla) manuel düzenlemelerden sonra açıkça çalıştırmak gerekli olmaya devam eder.

Adım 5: Kullanıcı İzinlerini Doğrulayın

Bir kullanıcı hesabını üretime koymadan önce, ayarladığınız izinlerin doğru olduğunu her zaman doğrulayın.

Belirli Bir Kullanıcı İçin Hibeler Kontrol Edin

SHOW GRANTS FOR 'newuser'@'%';

Örnek çıktı:

+--------------------------------------------------------------+
| Grants for newuser@%                                         |
+--------------------------------------------------------------+
| GRANT USAGE ON *.* TO `newuser`@`%`                          |
| GRANT ALL PRIVILEGES ON `exampledb`.* TO `newuser`@`%`       |
+--------------------------------------------------------------+

Tüm MySQL Kullanıcılarını Listeleyin

SELECT user, host FROM mysql.user;

Geçerli Kullanıcının Kendi Ayrıcalıklarını Kontrol Edin

SHOW GRANTS;

Adım 6: İzinleri İptal Etme (Gerektiğinde)

İzinler zaman içinde değişir. Bir kullanıcı artık belirli erişime ihtiyaç duymadığında, REVOKE ifadesini kullanarak bunu hemen iptal edin:

Söz Dizimi

REVOKE privileges ON database.table FROM 'username'@'host';

Örnek: Bir Kullanıcıdan Tüm Ayrıcalıkları İptal Edin

REVOKE ALL PRIVILEGES ON exampledb.* FROM 'newuser'@'%';
FLUSH PRIVILEGES;

Örnek: Belirli Bir Ayrıcalığı İptal Edin

REVOKE DELETE ON exampledb.orders FROM 'app_user'@'localhost';

Adım 7: Bir Kullanıcıyı Silme (Gerektiğinde)

Bir kullanıcı hesabı artık gerekli değilse, gereksiz erişim vektörlerini ortadan kaldırmak için tamamen kaldırın:

DROP USER 'newuser'@'%';

Bu komut, kullanıcı hesabını ve ilişkili tüm ayrıcalıkları tek bir işlemde kaldırır.

Barındırılan Ortamlarda MySQL Kullanıcı Yönetimi

MySQL’i paylaşılan veya yönetilen bir barındırma ortamında yönetiyorsanız, kontrol panelinize bağlı olarak işlem biraz farklı olabilir. cPanel, Plesk ve DirectAdmin gibi platformlar, SQL’i doğrudan yazmadan MySQL kullanıcıları oluşturmak ve izinler atamak için grafik arayüzler sağlar.

Adanmış bir sunucunun yükü olmadan tam komut satırı kontrolüne ihtiyaç duyan kullanıcılar için, VPS Hosting planları, performans, esneklik ve maliyet arasında ideal dengeyi sunar. Maksimum verim ve yalıtılmış kaynaklar gerektiren veritabanı yoğun uygulamalar çalıştırıyors

15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın