Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как можно передать (копировать) привелегии одного пользователя другим пользователям? / 12 сообщений из 12, страница 1 из 1
24.12.2015, 18:35:20
    #39137498
Адеке
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно передать (копировать) привелегии одного пользователя другим пользователям?
Как можно передать (копировать) привелегии одного пользователя другим пользователям? Через phpmyadmin по одному долго. Пользователей много.
...
Рейтинг: 0 / 0
24.12.2015, 18:51:01
    #39137513
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно передать (копировать) привелегии одного пользователя другим пользователям?
Код: sql
1.
SHOW GRANTS FOR `user`@`host`

даст тебе готовые тексты запросов на назначение ему всех имеющихся прав. Остаётся только подставлять другие имена (тупо Replace()) и выполнять. Легко делается одной процедурой.
Альтернативный вариант - дать шаблонному юзеру WITH GRANT OPTION, после чего от его имени разрешить нужным юзерам ВСЁ. Назначится только то, на что он имеет права. Останется отобрать WITH GRANT OPTION...
...
Рейтинг: 0 / 0
24.12.2015, 19:12:53
    #39137539
Адеке
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно передать (копировать) привелегии одного пользователя другим пользователям?
Akina,

первый вариант не получается, выводит не конченный текст запроса:
Код: sql
1.
GRANT SELECT, INSERT, UPDATE, DELETE, REFERENCES O...
...
Рейтинг: 0 / 0
24.12.2015, 19:19:11
    #39137546
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно передать (копировать) привелегии одного пользователя другим пользователям?
Адекепервый вариант не получается, выводит не конченный текст запроса:
Убери нахрен ГУЙ, работай в консоли!
...
Рейтинг: 0 / 0
24.12.2015, 19:28:41
    #39137560
Адеке
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно передать (копировать) привелегии одного пользователя другим пользователям?
Akina,

)
...
Рейтинг: 0 / 0
24.12.2015, 20:54:32
    #39137621
Адеке
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно передать (копировать) привелегии одного пользователя другим пользователям?
В процедуре пишу:
Код: sql
1.
2.
3.
 DECLARE shN text;
   SET shN = "'rrr'@'%'";
   GRANT EXECUTE ON `bsQWERTY`.* TO shN;


Вместо того чтобы предоставить привилегию пользователю 'rrr'@'%', она создает пользователя под именем shN.
Как здесь использовать переменную?
...
Рейтинг: 0 / 0
24.12.2015, 20:59:37
    #39137628
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно передать (копировать) привелегии одного пользователя другим пользователям?
АдекеКак здесь использовать переменную?PREPARE statement...
...
Рейтинг: 0 / 0
24.12.2015, 21:01:14
    #39137630
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно передать (копировать) привелегии одного пользователя другим пользователям?
Альтернативный вариант (особенно когда юзеров дохрена) - написать запрос, который выдаёт в единственном поле GRANT для одного юзера, вылить INTO OUTFILE, и потом выполнить SOURCE file.
...
Рейтинг: 0 / 0
24.12.2015, 22:14:02
    #39137679
Адеке
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно передать (копировать) привелегии одного пользователя другим пользователям?
Получается мне надо писать сколько привелегии, и столько и SET @var = CONCAT(), PREPARE zxc FROM @var; EXECUTE zxc;
Код: sql
1.
2.
3.
4.
5.
6.
7.
SET @var = CONCAT('GRANT EXECUTE ON `bsQWERTY`.* TO ', shN, ';');
PREPARE zxc FROM @var;
EXECUTE zxc;
SET @var = CONCAT('GRANT SELECT, INSERT, UPDATE, DELETE, REFERENCES ON `bsQWERTY`.`tmpEnc` TO ', shN, ';');
PREPARE zxc FROM @var;
EXECUTE zxc;
...


?
...
Рейтинг: 0 / 0
25.12.2015, 09:14:47
    #39137792
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно передать (копировать) привелегии одного пользователя другим пользователям?
Схематично вот так, например:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
create temporary table users (username varchar(128));

insert into users (username)
  select '\'user1\'@\'myhost\'' union all
  select '\'user2\'@\'myhost\'' union all
-- ...
  select '\'userN\'@\'myhost\'' ;

declare cursor mycursor
  as
  select username from users;

open mycursor;

fetch mycursor into @username;

while @username <> ''
  @sql = concat('grant {rights} to ',@username);
  prepare stmt from @sql;
  execute stmt;
  deallocate stmt;
  fetch mycursor into @username;
end while;

close mycursor;
...
Рейтинг: 0 / 0
25.12.2015, 20:49:02
    #39138474
Адеке
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно передать (копировать) привелегии одного пользователя другим пользователям?
Akina,

у меня список привилегии много. А можно в этот {rights} запихать все привилегии как-то разом?
...
Рейтинг: 0 / 0
25.12.2015, 22:25:49
    #39138491
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно передать (копировать) привелегии одного пользователя другим пользователям?
На различные объекты? а ты почитай справку по синтаксису GRANTS, и поймёшь...
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как можно передать (копировать) привелегии одного пользователя другим пользователям? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]