Я использую: mysql 5.5.43-0 в ubuntu 14.04.1
Я пытаюсь создать нового пользователя-администратора (admin), которому разрешено делать следующее:
db4user1
. * TO 'dbuser1' @ 'localhost';) - (предоставление прав для администратора -> не работает)У меня была проблема с шагом e.
Mysql показывает следующую ошибку: # 1044 - Доступ запрещен пользователю admin @ localhost к базе данных db4user1.
Вопрос: Какие дополнительные разрешения / привилегии нужны моему администратору для выполнения вышеупомянутых действий и не более того.
Я думаю, что у моего пользователя-администратора были все разрешения на предоставление существующему пользователю новой созданной базы данных ...
Но не вышло.
Спасибо за вашу помощь
Стефан
CREATE USER 'dbuser1'@'localhost' IDENTIFIED BY 'password1234'
SET PASSWORD FOR 'dbuser1'@'localhost' = PASSWORD('password5678')
GRANT USAGE ON *.* TO 'dbuser1'@'localhost' IDENTIFIED BY 'password5678' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREATE DATABASE IF NOT EXISTS `db4user1`;
GRANT ALL PRIVILEGES ON `db4user1`.* TO 'dbuser1'@'localhost';
-> # 1044 - Для пользователя admin @ localhost запрещен доступ к базе данных db4user1
Минимальное требование для предоставления достаточных прав данному пользователю (admin
здесь), чтобы иметь возможность предоставлять все привилегии для данной БД (db4user1
здесь) это:
GRANT DROP ,
REFERENCES ,
INDEX ,
ALTER ,
CREATE TEMPORARY TABLES ,
LOCK TABLES ,
CREATE VIEW ,
EVENT,
TRIGGER,
SHOW VIEW ,
CREATE ROUTINE,
ALTER ROUTINE,
EXECUTE ON `db4user1` . * TO 'admin'@'localhost' WITH GRANT OPTION ;
Почти все ...Кроме :
Create
(объем структуры)Select
,Insert
,Update
,Delete
(Объем данных)Отсюда, используя admin
пользователь:
mysql> GRANT ALL PRIVILEGES ON db4user1.* TO 'dbuser1'@'localhost';
Query OK, 0 rows affected (0.00 sec)
Признаюсь, я не нашел для этого никаких документов. Раньше я тратил много времени, проверяя все возможности путем исключения, одну за другой ...
Мне кажется, что вы хотите создать еще одного администратора, такого как default root
, поэтому вы можете использовать такой простой синтаксис:
GRANT ALL ON *.* TO admin@localhost IDENTIFIED BY 'passwd5678' WITH GRANT OPTION;