2013-07-05 3 views
0

Мы создали процедуру, как показано ниже:привилегия выдает процедуру в mysql?

CREATE DEFINER = ftdinc @% ПРОЦЕДУРА get_all_dates (
in_product_id VARCHAR (100), in_zip_code
VARCHAR (100), in_max_delivery_date DateTime) ....... и т.п.

call pas.get_all_dates ('FK35', '10001', '2013-09-09 00:00:00'); ОШИБКА 1142 (42000): SELECT, команда отказано пользователю 'па' @ '%' для таблицы

На самом деле мы не имеем па пользователя "pas.get_all_dates. У нас есть только пользователь ftdinc.

, почему это было выполнено с пользователем пользователя pas пользователя ftdinc. Мы не поняли.

Пожалуйста, помогите мне

+0

В чем проблема? – Stephan

+0

@stephen не получает results.SELECT команда отказала пользователю 'pas' @ '%' у нас есть ftdinc пользователь и ftddefiner.why он выполнялся с пользователем pas я не знаю. – user2545955

+0

попробуйте 'call ftdinc.get_all_dates ('FK35', '10001', '2013-09-09 00:00:00'); ' – Stephan

ответ

0

Используя информацию от ошибки, которую вы пытаетесь call процедуру, с помощью которой пользователь pas не имеет права так что проще решение, но не очень безопасно:

GRANT ALL ON *.* TO 'pas'@'%'; 
FLUSH PRIVILEGES; 

у вас есть 2 варианта:

1) предоставляют права на пользователя pas
2) использовать пользовательский ftdinc выполнить вызов

+0

ранее у нас нет пользователя pas, он отлично работает. но теперь он искал пользователя pas. – user2545955

+0

с учетом вашей ошибки 'call' выполняется с использованием' pas' пользователя – Stephan

+0

вы выполнили 'grant' и' flush'? – Stephan

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