MySQL Aynı Kullanıcıyı Engelleme
MySQL, dünyada en çok kullanılan ilişkisel veritabanı yönetim sistemlerinden biridir. MySQL, verileri tablolar halinde saklar ve bu tablolara erişim ve yönetim için SQL (Structured Query Language) dilini kullanır.
MySQL’de kullanıcılar, veritabanına erişmek ve verileri yönetmek için kullanılır. Her kullanıcıya bir kullanıcı adı ve parola atanır ve bu kullanıcı adı ve parola ile kullanıcı veritabanına erişebilir.
Bazı durumlarda, aynı kullanıcının veritabanına aynı anda birden fazla kez erişmesini engellemek gerekebilir. Bu, güvenlik veya performans nedenleriyle yapılabilir.
MySQL’de aynı kullanıcının veritabanına aynı anda birden fazla kez erişmesini engellemek için birkaç yöntem vardır. Bu yöntemlerden biri, max_connections
sistem değişkenini kullanmaktır.
max_connections
sistem değişkeni, MySQL sunucusunun aynı anda kaç kullanıcının bağlanabileceğini belirler. Bu değişkenin değeri, sunucunun kaynaklarına ve iş yüküne göre ayarlanmalıdır.
max_connections
sistem değişkeninin değerini ayarlamak için aşağıdaki adımları izleyebilirsiniz:
- MySQL sunucusuna root kullanıcısı olarak bağlanın.
- Aşağıdaki komutu çalıştırın:
SET GLOBAL max_connections = 10;
Bu komut, MySQL sunucusunun aynı anda en fazla 10 kullanıcının bağlanmasına izin vereceğini belirler.
Aynı kullanıcının veritabanına aynı anda birden fazla kez erişmesini engellemek için kullanılabilecek bir diğer yöntem ise, user_connect_limit
sistem değişkenini kullanmaktır.
user_connect_limit
sistem değişkeni, aynı kullanıcının veritabanına aynı anda kaç kez bağlanabileceğini belirler. Bu değişkenin değeri, kullanıcının güvenlik düzeyine ve iş yüküne göre ayarlanmalıdır.
user_connect_limit
sistem değişkeninin değerini ayarlamak için aşağıdaki adımları izleyebilirsiniz:
- MySQL sunucusuna root kullanıcısı olarak bağlanın.
- Aşağıdaki komutu çalıştırın:
SET GLOBAL user_connect_limit = 1;
Bu komut, aynı kullanıcının veritabanına aynı anda en fazla 1 kez bağlanabileceğini belirler.
Aynı kullanıcının veritabanına aynı anda birden fazla kez erişmesini engellemek için kullanılabilecek bir diğer yöntem ise, GRANT
komutunu kullanmaktır.
GRANT
komutu, kullanıcılara belirli izinler verir. Bu izinler, kullanıcının veritabanındaki belirli nesnelere erişmesine, bunları değiştirmesine veya silmesine izin verebilir.
GRANT
komutunu kullanarak, aynı kullanıcının veritabanına aynı anda birden fazla kez erişmesini engellemek için aşağıdaki adımları izleyebilirsiniz:
- MySQL sunucusuna root kullanıcısı olarak bağlanın.
- Aşağıdaki komutu çalıştırın:
GRANT SELECT ON *.* TO 'user'@'localhost' WITH MAX_CONNECTIONS_PER_HOUR 1;
Bu komut, user
adlı kullanıcının veritabanındaki tüm nesnelere erişmesine izin verir, ancak kullanıcının aynı anda en fazla 1 kez bağlanmasına izin verir.
Aynı kullanıcının veritabanına aynı anda birden fazla kez erişmesini engellemek için kullanılabilecek bir diğer yöntem ise, DENY
komutunu kullanmaktır.
DENY
komutu, kullanıcılara belirli izinleri reddeder. Bu izinler, kullanıcının veritabanındaki belirli nesnelere erişmesine, bunları değiştirmesine veya silmesine izin verebilir.
DENY
komutunu kullanarak, aynı kullanıcının veritabanına aynı anda birden fazla kez erişmesini engellemek için aşağıdaki adımları izleyebilirsiniz:
- MySQL sunucusuna root kullanıcısı olarak bağlanın.
- Aşağıdaki komutu çalıştırın:
DENY SELECT ON *.* TO 'user'@'localhost';
Bu komut, user
adlı kullanıcının veritabanındaki tüm nesnelere erişmesini engeller.
Faydalı Siteler ve Dosyalar
- MySQL Documentation: User Account Management
- MySQL Documentation: GRANT Syntax
- MySQL Documentation: DENY Syntax