Konuyu Açan #1
MySQL’in bilgi şeması (information_schema) üzerinden yetki kontrollerinin nasıl çalıştığını ve güvenlik açısından nelere dikkat edilmesi gerektiğini paylaşmak istiyorum. Aşağıda üç odak noktasıyla doğrudan uygulamaya dönük notlar var.

  • Güvenlik modeliyle uyumlu erişim: information_schema üzerinde sorgular genelde, sunucudaki kullanıcıların yetkileriyle ilişkilidir. Örneğin, bir kullanıcıya sadece kendi veritabanı üzerindeki tabloları görüntüleme yetkisi verilmişse, INFORMATION_SCHEMA.TABLES içeriğini “SHOW DATABASES” veya genel yetkiler olmadan kısıtlı görür. Bu yüzden farklı kullanıcı grupları için hangi tablolara, hangi sütunlara erişim sağlandığını test etmek önemli.
  • Kapsamlı yetki denetimi için sorgu örnekleri:
    • Kullanıcıların hangi veritabanlarına erişimi olduğunu kontrol etmek için:

    SELECT schema_name, default_character_set_name FROM information_schema.SCHEMATA WHERE schema_privilege = 'YES';
    • Belirli bir kullanıcıya ait tablo privilgesi analiz etmek için:

    SELECT TABLE_SCHEMA, TABLE_NAME, PRIVILEGE_TYPE
    FROM information_schema.TABLE_PRIVILEGES
    WHERE GRANTEE LIKE "'kullanici'@'%'";
    • Global, veritabanı ve tablo düzeyinde hangi privilgelere sahip olduklarını görmek için:

    SELECT * FROM information_schema.USER_PRIVILEGES WHERE GRANTEE = "'kullanici'@'host'";
    [e]Güvenlik açığı ihtimalleri ve öneriler: bilgi şeması görünümünde bazı privilgeler kullanıcıya gösteriliyor olabilir. Örneğin, GRANT OPTION gibi yüksek seviyedeki yetkiler tehlikeli olabilir. Gereksiz temizlemeler için düzenli olarak deny/deny-restart planı uygulanmalı. Ayrıca süreç izleme için günlük kayıtlarına bakılmalı ve periyodik olarak test kullanıcı hesaplarıyla güvenlik doğrulaması yapılmalı.
  • İdari pratikler: gerçek ortamda bilgi şeması sorgularını üretkenlik kaygısıyla pencerelerde çalıştırmak yerine staging veya simülasyon veritabanlarında test edin. Sıkça karşılaşılan hatalardan biri, kullanıcı bazlı görsel çıktılarda eksik filtrelemeler nedeniyle yetkisiz bilgilerin de görünmesidir; bunu önlemek için sorgu seviyesinde WHERE koşullarını dikkatli kullanın.
  • İyi örnek uygulama: bir role atama yaklaşımıyla, INFORMATION_SCHEMA üzerinde ne tür bilgiler paylaşacağını merkezi olarak belirlemek ve bu rolü ilgili kullanıcı gruplarına devretmek. Böylece güvenlik politikalarını tek noktadan yönetebilirsiniz.


Bu konuyu kendi ortamınıza göre genişletelim: hangi sürümde hangi görünümler en problemli olabiliyor, özel bir yetki senaryonuz var mı, veya bilgi şemasını kullanarak otomatik denetim kuralları mı kurmak istiyorsunuz? Fikirlerinizi ve yaşadığınız spesifik durumları paylaşın, karşılıklı olarak çözüm önerileri üretelim.

Yanıt vermek için giriş yapmış olmalısınız.

Bu konuyu görüntüleyen kullanıcılar (Toplam: 1, Üyeler: 1, Misafirler: 0)
Toplam: 1 (üyeler: 1, misafirler: 0)
0 alıntı seçildi