2012-07-02 1 views
3

Я хочу создать нового пользователя в MySql. Я не хочу, чтобы этот новый пользователь много сделал с моими существующими базами данных [я просто хочу предоставить ему привилегию Select], но он может делать все и вся с помощью новой базы данных, которую он создает.MySql предоставить пользователю разрешение

Во-первых, есть ли способ предоставить разрешение в соответствии с владельцем базы данных? Если это возможно, то это идеальная вещь, которую я ищу. А если нет, то каким образом я могу ограничить доступ определенного пользователя к [только выбору привилегии] только определенной конкретной базой данных, позволяя ему делать все, что захочет, с оставшимися?

+0

@Anuj вы должны предоставить разрешения для каждой БД вы хотите, чтобы пользователь, чтобы получить доступ – Nico

+0

Но, как я сказал, пользователь может создавать новые базы данных также. Поэтому я не могу предоставить пользователям разрешения для явных ящиков для всех баз данных. – Anuj

+0

это нормально, пожалуйста, сообщите нам, если вы решите эту проблему с ответом HeatfanJhon – jcho360

ответ

15

С MySQL grant documentation:

CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass'; 
GRANT SELECT ON *.* TO 'jeffrey'@'localhost'; 
GRANT ALL ON db1.* TO 'jeffrey'@'localhost'; 

Первая команда создает пользователю. Второй грант выбирается во всех базах данных и таблицах. Третья команда предоставляет доступ ко всем таблицам в db1.

Есть ли что-то еще конкретное, что вы ищете?

+0

Я читал это, но я не могу получить то, что планирую делать. Скажем, у меня уже есть 2 базы данных, а именно db1 и db2. Я хочу, чтобы новый пользователь просто выделил только привилегию для этих 2 db, но он должен иметь возможность создавать новую собственную базу данных и должен делать все, что захочет, с этой базой данных. – Anuj

+0

Вместо этого я хочу что-то вроде: GRANT ALL ON *. * TO 'jeffrey' @ 'localhost'; GRANT SELECT ON db1. * TO 'jeffrey' @ 'localhost'; Но тогда это не сработает. Я получаю все разрешения даже для db1. – Anuj

+0

Да, я вижу вашу проблему. Я попробовал тест, предоставляющий пользователю привилегию создания, и я смог создать новую базу данных с использованием этого идентификатора пользователя, однако идентификатор пользователя не имел никаких прав в созданной базе данных. Необходимо сделать больше исследований. – HeatfanJohn

0

Открыть командную строку mysql.

Для создания нового пользователя, когда хост LOCALHOST затем использовать эту команду

CREATE user 'test_user'@'localhost' identified by 'some_password'; 

для любого использование хоста%, как этого

CREATE user 'test_user'@'%' identified by 'some_password'; 

После того, как пользователь будет создан, вы должны Даруй некоторых доступ. Для этого используйте следующую команду.

GRANT SELECT,INSERT,UPDATE 
ON database_name.table_name 
TO 'test_user'@'localhost'; 

После успешного выполнения вышеупомянутого запроса, test_user может выбрать, вставку и обновление в table_name (имя таблицы) из имя_б_да (имени базы данных).

-2

grant privilege дается в базе данных, как этот

grant privilege on object to user 

object любая база данных таблицы или отношения и user может быть кому льгота предоставляется ему.

Пример

grant select,insert,update,on object name to user name 

grant select on employee to john with grant option; 

revoke delete on employee from john. 

 Смежные вопросы

  • Нет связанных вопросов^_^