2014-09-05 1 views
1
  1. элемента списка Первоначально TEMP таблица, созданная с помощью хранимой процедуры, который делают некоторые действия
  2. Есть эти несколько TEMP таблицы, таким образом, созданное этим выше сказал СП.
  3. Я хочу дать ВЫБЕРИТЕ разрешения на некоторые из моего SQL пользователей для этого TEMP таблиц который динамически создаваемого приведенного выше СП по

Для вышеприведенного REQ, я попытался ниже запрос от пользователя в ROOT, чтобы дать разрешение на стол с приставкой температурыГрант привилегий для TEMP таблицы (динамически создаваемого ХПОМ)

GRANT ALL PRIVILEGES ON dbname .`Temp%` TO 'TEST'@'%' WITH GRANT OPTION; 

Но все же вышеперечисленные привилегии для пользователя «TEST» не в состоянии выбрать эти таблицы TEMP и gves ниже ERR:

ВЫБРАТЬ команда отказано пользователю «TEST» @ «локальный» для таблицы ' temp_ccdata_20140904101131_2'

пожалуйста кто-нибудь предложить, если есть какие-либо возможности предоставить ВЫБЕРИТЕ доступ для динамических таблиц, созданных хранимой процедурой

БЛАГОДАРЯ ЗАРАНЕЕ

+0

Проверить [13.7.1.4 Синтаксис GRANT] (http://dev.mysql.com/doc/refman/5.6/en/grant.html): «Символы« _ »и«% »разрешены при указании базы данных имена в заявках GRANT, которые предоставляют привилегии на уровне глобальной или базы данных. – wchiquito

+0

привет, есть ли другая возможность предоставить разрешение на предоставление разрешения SELECT с использованием wild card для динамических таблиц. – Sattanathan

ответ

0

Как указано в @wchiquito, при указании имен баз данных разрешены символы _ и %. Возможный способ решения с использованием шаблонов в имени таблицы в виде GRANT запроса следующим образом:

SELECT CONCAT('GRANT SELECT ON dbname.', TABLE_NAME, ' TO user;') 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = 'dbname' AND TABLE_NAME LIKE 'prefix%'; 

Замена dbname с exampledb, user с tony42 и prefix с foo_ должен возвращать запросы, как:

GRANT SELECT ON exampledb.foo_usertable TO tony42 

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