SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 15.04.2011 13:53:11

simple
Активист
Зарегистрирован: 25.11.2010
Сообщений: 168

Создание нового пользователя Mysql

Доброго дня всем, помогите советом по добавлению привилегий. Пишу сервис по регистрации пользователей в базе через сайт средствами Mysql, т.е хочу сделать без всяких PHP скриптов, чтоб не держать дополнительные таблицы с логинами и паролями и.т.д, ведь вся это инфа уже есть в самой базе, зачем делать дубликаты, я так думаю. Вобщем накатал процедуру которая будет выполняться под root`ом ну или под другим пользавателем имеющий привилегии на добавление юзеров вот код:


CREATE DEFINER=`root`@`localhost` PROCEDURE `Registrator`(IN `login` CHAR(10),IN `pass` CHARR(10))
    LANGUAGE SQL
    NOT DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN
set @q=CONCAT('create user ', login,' IDENTIFIED by ''',pass,'''');
prepare stmt from @q
execute stmt;
END
 
;

Скажите как пользователю сделать привилегии чтобы он мог выполнять только определенные хранимые процедуры в определенной базе данных? И еще вопрос в mysql пользаватель например nik@mail.ru и nik@yandex.ru как известно два разных пользавотеля, можно ли как нибудь сделать чтобы если юзер nik в базе есть то другой юзер уже не сможет взять себе это имя пусть хоть с какого узла заходит?
Спасибо.

Неактивен

 

#2 16.04.2011 01:10:03

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Создание нового пользователя Mysql

GRANT EXECUTE ON dbname.procname TO username@hostname.

Если брать в качестве hostname '%', то можно вполне «застолбить» ник.

Неактивен

 

#3 23.06.2011 00:14:47

simple
Активист
Зарегистрирован: 25.11.2010
Сообщений: 168

Re: Создание нового пользователя Mysql

Доброй ночи всем smile подскажите кто в курсе, что лучше использовать при проверки логина на свободность. CREATE USER с отлавливанием ошибки 1396 или же держать доп.таблицу с логинами и селектить ее на предмет существования логина. Лично мне по душе первый вариант, но может я ошибаюсь?

Неактивен

 

#4 27.06.2011 14:55:55

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Создание нового пользователя Mysql

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

Неактивен

 

#5 27.06.2011 21:29:42

simple
Активист
Зарегистрирован: 25.11.2010
Сообщений: 168

Re: Создание нового пользователя Mysql

Спасибо за совет, так и сделаю.

Неактивен

 

#6 28.06.2011 07:24:33

simple
Активист
Зарегистрирован: 25.11.2010
Сообщений: 168

Re: Создание нового пользователя Mysql

И все таки я не допонимаю как mysql определяет ip. Ведь большинство они динамичные значит могут менятся, и что если при регистрации запишится ip а при последующих подключений к базе этот ip будет динамически менятся по понятным причинам, как тогда пользователь попадет в аккаунт?

Неактивен

 

#7 28.06.2011 13:18:52

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Создание нового пользователя Mysql

Никак не попадет, это задача системного администратора — правильно настраивать
доступы к базе, — а не пользователя.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson