Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2014, 20:30   #1
Muramidaza
Пользователь
 
Регистрация: 08.01.2014
Сообщений: 53
По умолчанию Создание пользователя с помощью хранимой процедуры

Пишу хранимую процедуру для создания нового пользователя. Что то похожее написал - но ругается на ошибки синтаксиса. СУБД MySQL

Код:
CREATE PROCEDURE Add_User (@login AS VARCHAR(40), @UserParol AS
VARCHAR(10))

BEGIN
GRANT ALL PRIVILEGES ON bdapteka.* TO CONCAT(@Login, '@%') IDENTIFIED BY @UserParol WITH GRANT OPTION;
END
Опыта у меня почти нет - пожалуйста, покажите как надо это сделать. И можно ли вообще создавать пользователей так?
Muramidaza вне форума Ответить с цитированием
Старый 17.03.2014, 20:35   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Опа... А разве команда GRANT создает пользователя??
Это во-первых. А во-вторых ошибки то какие?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.03.2014, 20:43   #3
Muramidaza
Пользователь
 
Регистрация: 08.01.2014
Сообщений: 53
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Опа... А разве команда GRANT создает пользователя??
Это во-первых. А во-вторых ошибки то какие?
В документации написано что Grant дает права и если такого пользователя нет, то создает его, если указан PASSWORD
Muramidaza вне форума Ответить с цитированием
Старый 17.03.2014, 20:52   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от Muramidaza Посмотреть сообщение
В документации написано что Grant дает права и если такого пользователя нет, то создает его, если указан PASSWORD
Какую версию MySQL Вы используете? Документацию по какой версии MySQL Вы читали?
Streletz вне форума Ответить с цитированием
Старый 17.03.2014, 21:12   #5
Muramidaza
Пользователь
 
Регистрация: 08.01.2014
Сообщений: 53
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
Какую версию MySQL Вы используете? Документацию по какой версии MySQL Вы читали?
MySQL 5.5 там вроде как пользователь GRANTом может создаваться. Ругается так MySQL server version for the right syntax to use near '@UserParol' WITH GRANT OPTION

Последний раз редактировалось Muramidaza; 17.03.2014 в 21:17.
Muramidaza вне форума Ответить с цитированием
Старый 19.03.2014, 23:32   #6
Muramidaza
Пользователь
 
Регистрация: 08.01.2014
Сообщений: 53
По умолчанию

Команда GRANT не хочет воспринимать переменные как переменные - воспринимает как есть и создает пользователя str1 - по названию переменной
Muramidaza вне форума Ответить с цитированием
Старый 27.03.2014, 06:52   #7
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Да, так и должно быть. Команда grant относится к DDL, а параметры в DDL отсутствуют.

Stilet, в Oracle grant научили создавать пользователя по ходу дела. Решили унифицировать и в MySQL, видимо. Не просто же так они его купили.
Vapaamies вне форума Ответить с цитированием
Старый 27.03.2014, 08:23   #8
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,876
По умолчанию

Если не жуёт параметрами - то надо динамически собирать sql код и его выполнять
Что-то вроде такого
Код:
EXEC 'GRANT ALL PRIVILEGES ON bdapteka.* TO ' + CONCAT(@Login, '@%') + 'IDENTIFIED BY ' + @UserParol  + ' WITH GRANT OPTION;';
Могу жёстко гнать, с мускулем почти не работал.
phomm вне форума Ответить с цитированием
Старый 27.03.2014, 09:09   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
в Oracle grant научили создавать пользователя по ходу дела.
А-а-а... Соодеска. Тогда ясено.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.03.2014, 09:39   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Пример динамического запроса MySQL
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов хранимой процедуры MySQL Dozent БД в Delphi 4 15.10.2013 03:24
Вызов хранимой процедуры Swatch PHP 0 02.08.2013 13:18
Параметры хранимой процедуры yasic БД в Delphi 4 26.01.2012 18:10
Вызов хранимой процедуры welcomeTo Помощь студентам 0 04.08.2011 20:26
проблему возможно решить с помощью хранимой процедуры на SQL? yulia БД в Delphi 8 24.05.2007 20:25