FastNetMon

Friday, 5 November 2010

Крайне интересным образом ISPManager выключает базы данных

select * from mysql.user where User = 'someuser';
| dsbl_localhost | someuser | *q1wqeqweqwe | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | | | | | 0 | 0 | 0 | 0 |


То есть, вместо localhost клиенту прописывается Host dsbl_localhost, чтобы он ну никак не мог получить доступ, что же, годный метод. Поиск по интернетам также результатов не дал, видимо, "красивых" решений этой проблемы не существует. Вот даже фич риквест в баг-трекере MySQL: http://bugs.mysql.com/bug.php?id=9736

4 comments :

  1. "видимо, "красивых" решений этой проблемы не существует"

    Паш, мало того существуют, так они еще и встроены в MySQL. Называется команда Revoke.
    Перефразирую, чтобы стало очевидно: чтобы у человека не было прав на доступ к базе, надо не базу прятать, а права отозвать. То есть revoke. Причем отзывать не только права на чтение, но и на самовыдачу грантов.

    ReplyDelete
  2. Ну а тогда где, по твоему, исп на время отключения юзера будет хранить то, к каким таблицам у него был доступ? То то же.

    ReplyDelete
  3. Отозвать только селект и грант_привиледж. Они всегда стоят на Y. И без селекта никуда.

    Кстати нашел еще более прикольный способ:
    # mysql -p -e "desc mysql.user;" | grep connections
    Enter password:
    max_connections int(11) unsigned NO 0
    max_user_connections int(11) unsigned NO 0

    Можно коннектиться запретить :D

    ReplyDelete
  4. Не получится - The maximum number of simultaneous connections permitted to any given MySQL user account. A value of 0 (the default) means “no limit.” :)

    ReplyDelete

Note: only a member of this blog may post a comment.