Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Чтение одной базы из под логина другой / 6 сообщений из 6, страница 1 из 1
30.01.2018, 10:14
    #39593133
Posohov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение одной базы из под логина другой
Имеем несколько баз на одном сервере, у каждой свой логин.
Подключаюсь к одной из них - db1.
Как оказалось, при этом я могу читать таблицы другой базы, указывая в запросе нужную базу явно:
Код: sql
1.
SELECT * FROM db2.table1;



Вопрос: почему такое оказалось возможным при том, что в соединении к базе db1 в привилегиях не указана db2?
...
Рейтинг: 0 / 0
30.01.2018, 10:30
    #39593141
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение одной базы из под логина другой
Посмотрите ПОЛНОСТЬЮ разрешения для учётной записи.
...
Рейтинг: 0 / 0
30.01.2018, 10:45
    #39593154
Posohov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение одной базы из под логина другой
Посмотрел.
Я ведь уже говорил, что в разрешениях учетной записи log1 указана только db1 и тем не менее таблицы всех других баз db2-db10 я читать могу.
Вот в чем загадка.
...
Рейтинг: 0 / 0
30.01.2018, 10:54
    #39593159
Posohov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение одной базы из под логина другой
Еще одно уточнение:
из под логина к db1 я могу только читать таблицы всех остальных баз, но не могу в них обновлять, удалять и создавать записи, равно как и создание и удаление самих таблиц.
...
Рейтинг: 0 / 0
30.01.2018, 11:43
    #39593213
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение одной базы из под логина другой
Или плохо смотрел, или не туда. Если всё сделано правильно, на попытку получить данные из неразрешённой БД ты будешь получать
Код: sql
1.
ERROR 1142 (42000): SELECT command denied to user 'username'@'userhost' for table 'tablename'


Проделай следующее:
1) Создай пользователя. Например
Код: sql
1.
CREATE USER 'dummy'@'%' IDENTIFIED BY '123';


2) Дай ему права на db1
Код: sql
1.
GRANT ALL ON db1.* TO 'dummy'@'%';


3) Выполни вход этим пользователем (не забудь указать db1 в качестве дефолтной БД - иначе не войдёшь)
Код: powershell
1.
2.
C:\>"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe" "--defaults-file=C:\ProgramData\MySQL\MySQL Server 5.7\my.in
i" "-udummy" "-p" "--default-character-set=utf8mb4" "--database=db1"


4) Попробуй выполнить SELECT из таблицы другой БД.
Код: sql
1.
2.
mysql> select * from db2.table1;
ERROR 1142 (42000): SELECT command denied to user 'dummy'@'localhost' for table 'table1'



Если при этом ты получишь не сообщение об ошибке, а копию данных - ищи косяки в настройках сервера.
...
Рейтинг: 0 / 0
30.01.2018, 11:55
    #39593229
Posohov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение одной базы из под логина другой
Akina спасибо большое за поддержку.
Действительно я сам все это организовал, но забыл об этом.
Я сам задал административное право на чтение юзерам, поэтому все базы и читаются.

Вопрос исчерпан - тема закрыта!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Чтение одной базы из под логина другой / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]