Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: MySQL: Права учетных записей - живут дольше чем сам сервак?  (Прочитано 5198 раз)
0 Пользователей и 1 Гость смотрят эту тему.
malor
Опытный

ru
Offline Offline

« : 23-11-2011 12:58 » 

При переустановке MySQL 5.5 таблица разрешений не очищается?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 23-11-2011 15:05 » 

Во время установки/удаления/обновления MySQL данные никак не изменяются.

Служебная схема mysql создается один раз при запуске mysql_safe, только если директории datadir/mysql не было.

Установка поверх или с предварительным удалением той же минорной версии никаких манипуляций с данными не требует, но конфиг надо проконтроллировать (лучше сохранить старый).

Установка большей минорной или мажорной версии требует апгрейда схемы (см. мануал).

Главное правило: перед подобными действиями сделай бекап данных и конфига! Вне зависимости, будут они изменяться или нет!
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
malor
Опытный

ru
Offline Offline

« Ответ #2 : 23-11-2011 16:51 » 

Была база, в ней был пользователь, у него было много прав на какуюто БД.
Взялся переустановить сервак MySQL и сразу после этого выдать пользователю меньшее количество прав:
>mysql -uroot -p123456 mybase < sqlcommand.txt

В файле sqlcommand.txt расположен оператор "GRANT".

После выполнения всех этих процедур проверяю - у пользователя так и остались широкие права. А как же GRANT?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 23-11-2011 17:04 » new

Я выше написал: данные при деинсталяции и последующей установки, либо при переустановки поверх, не удаляются.

Если надо снять какие-то права, используй оператор REVOKE.

Внимательно, какие команды к какому результату приводят:

mysql> use test
Database changed
mysql> SHOW TABLES;
+----------------+
| Tables_in_test |
+----------------+
| access_log     |
| edges          |
| nodes          |
+----------------+
3 rows in set (0.00 sec)

mysql> CREATE USER 'xxx'@'localhost' IDENTIFIED BY 'yyy';
Query OK, 0 rows affected (0.04 sec)

mysql> GRANT SELECT ON test.* TO 'xxx'@'localhost';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT UPDATE,INSERT,DELETE ON test.access_log TO 'xxx'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW GRANTS FOR 'xxx'@'localhost';
+------------------------------------------------------------------------------------------------------------+
| Grants for xxx@localhost                                                                                   |
+------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'xxx'@'localhost' IDENTIFIED BY PASSWORD '*EAF818FC2F6764B7CDC4AB989BC4C194071223F9' |
| GRANT SELECT ON `test`.* TO 'xxx'@'localhost'                                                              |
| GRANT INSERT, UPDATE, DELETE ON `test`.`access_log` TO 'xxx'@'localhost'                                   |
+------------------------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)

mysql> REVOKE DELETE ON `test`.`access_log` FROM 'xxx'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW GRANTS FOR 'xxx'@'localhost';
+------------------------------------------------------------------------------------------------------------+
| Grants for xxx@localhost                                                                                   |
+------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'xxx'@'localhost' IDENTIFIED BY PASSWORD '*EAF818FC2F6764B7CDC4AB989BC4C194071223F9' |
| GRANT SELECT ON `test`.* TO 'xxx'@'localhost'                                                              |
| GRANT INSERT, UPDATE ON `test`.`access_log` TO 'xxx'@'localhost'                                           |
+------------------------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)

mysql> REVOKE ALL ON `test`.* FROM 'xxx'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW GRANTS FOR 'xxx'@'localhost';
+------------------------------------------------------------------------------------------------------------+
| Grants for xxx@localhost                                                                                   |
+------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'xxx'@'localhost' IDENTIFIED BY PASSWORD '*EAF818FC2F6764B7CDC4AB989BC4C194071223F9' |
| GRANT INSERT, UPDATE ON `test`.`access_log` TO 'xxx'@'localhost'                                           |
+------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> REVOKE ALL ON `test`.`access_log` FROM 'xxx'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW GRANTS FOR 'xxx'@'localhost';
+------------------------------------------------------------------------------------------------------------+
| Grants for xxx@localhost                                                                                   |
+------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'xxx'@'localhost' IDENTIFIED BY PASSWORD '*EAF818FC2F6764B7CDC4AB989BC4C194071223F9' |
+------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> DROP USER 'xxx'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW GRANTS FOR 'xxx'@'localhost';
ERROR 1141 (42000): There is no such grant defined for user 'xxx' on host 'localhost'
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines