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

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

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

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


Вместо того чтобы предоставить привилегию пользователю 'rrr'@'%', она создает пользователя под именем shN.
Как здесь использовать переменную?
...
Рейтинг: 0 / 0
Как можно передать (копировать) привелегии одного пользователя другим пользователям?
    #39137628
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АдекеКак здесь использовать переменную?PREPARE statement...
...
Рейтинг: 0 / 0
Как можно передать (копировать) привелегии одного пользователя другим пользователям?
    #39137630
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Альтернативный вариант (особенно когда юзеров дохрена) - написать запрос, который выдаёт в единственном поле GRANT для одного юзера, вылить INTO OUTFILE, и потом выполнить SOURCE file.
...
Рейтинг: 0 / 0
Как можно передать (копировать) привелегии одного пользователя другим пользователям?
    #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
Как можно передать (копировать) привелегии одного пользователя другим пользователям?
    #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
Как можно передать (копировать) привелегии одного пользователя другим пользователям?
    #39138474
Адеке
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

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


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