Pamięć podręczna hostów MySQL: IP na białej liście?

3

Czy istnieje sposób na dodanie do białej listy adresu IP, aby max_connect_errors nie miał zastosowania?

Adres IP mojego biura został dziś zablokowany z powodu zbyt wielu błędów połączenia z naszym nowym, rozwojowym serwerem MySQL. Musiałem FLUSH HOSTS, aby ponownie zezwolić na połączenia.

Czy istnieje sposób, w jaki mogę po prostu dodać do białej listy nasz adres IP, aby max_connect_errors nadal obowiązywał dla wszystkich innych połączeń?

balleyne
źródło
Naprawdę nie chcesz tego robić. Następna runda błędów połączenia może być złośliwa.
Michael Hampton
Z mojego biura? Miałem nadzieję po prostu dodać ten adres IP do białej listy, aby móc pozostawić ustawienie max_connect_errors na inne próby, ale zapobiec ponownemu zablokowaniu biura.
balleyne

Odpowiedzi:

1

Nie, nie ma takiej możliwości, max_connect_errorsjest to ustawienie globalne, a nie zmienna na użytkownika / sesję.

Dennis Kaarsemaker
źródło
Inne serwery mają ustawienia globalne i białe listy (myśląc o cPanel, Postfix ...), tj. Ustawienia globalne przeciwdziałające atakom siłowym, ale biała lista hostów jest zwolniona z tego ograniczenia. Tak więc bycie globalnym otoczeniem nie wydaje się wykluczać białej listy ... Ale sądzę, że MySQL po prostu jej nie ma? = \
balleyne
Mysql nie wykonuje żadnej białej listy. Masz ustawienia globalne, ustawienia sesji lub ustawienia użytkownika. max_connectionsjest przykładem ustawienia globalnego, które może zostać zastąpione przez użytkownika. max_connect_errorsnie można zastąpić.
Dennis Kaarsemaker
Możesz jednak ustawić ograniczenia liczby połączeń z różnych źródeł w większości zapór, w tym Linux iptables).
symcbean
1

Możesz zmodyfikować ustawienie globalne do wysokiej liczby, a następnie użyć różnych użytkowników do połączeń lokalnych i innych takich jak ten;

grant usage on *.* to outsideuser@'%' with max_user_connections 10;

grant usage on *.* to localuser@'%' with max_user_connections 1000;

Możesz wypróbować tego samego użytkownika na innym hoście, nie jestem tego pewien, ale możesz spróbować w ten sposób;

grant usage on *.* to user@'%' with max_user_connections 10;

grant usage on *.* to user@'localip' with max_user_connections 1000;

Możesz to również zrobić dla użytkowników;

 GRANT OPTION
  | MAX_QUERIES_PER_HOUR count
  | MAX_UPDATES_PER_HOUR count
  | MAX_CONNECTIONS_PER_HOUR count
  | MAX_USER_CONNECTIONS count
Cem
źródło