powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / GRANT на генератор и EXECUTE BLOCK
18 сообщений из 18, страница 1 из 1
GRANT на генератор и EXECUTE BLOCK
    #39883757
sysdba22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FB 3.0.5.

1) Есть БД
2) в ней есть генератор GD_G_DBID
3) Есть пользователь STARTUSER
4) на генератор розданы права:

grant usage on generator gd_g_dbid to PUBLIC

и

grant usage on generator gd_g_dbid to user STARTUSER

пытаюсь выполнить:

SET GENERATOR gd_g_dbid TO 0

получаю ошибку:

unsuccessful metadata update.
SET GENERATOR GD_G_DBID failed.
no permission for ALTER access to GENERATOR GD_G_DBID.

под SYSDBA все работает нормально.

в firebird.conf:

AuthServer = Legacy_Auth
AuthClient = Legacy_Auth, Srp, Win_Sspi
UserManager = Legacy_UserManager

В чем может быть проблема?
...
Рейтинг: 0 / 0
GRANT на генератор и EXECUTE BLOCK
    #39883801
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
31.10.2019 16:44, sysdba22 пишет:
> grant usage on generator gd_g_dbid to PUBLIC
>
> и
>
> SET GENERATOR gd_g_dbid TO 0

это вам не ЭТО!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
GRANT на генератор и EXECUTE BLOCK
    #39883825
sysdba22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а как?

grant update on gd_g_dbid to PUBLIC

дает ошибку:

unsuccessful metadata update.
GRANT failed.
unknown ISC error 336068914.

grant update on generator gd_g_dbid to PUBLIC

дает ошибку:

Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 27.
gd_g_dbid.
...
Рейтинг: 0 / 0
GRANT на генератор и EXECUTE BLOCK
    #39883829
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22а как?

"with grant option" попробуй.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
GRANT на генератор и EXECUTE BLOCK
    #39883830
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
31.10.2019 17:53, sysdba22 пишет:
> а как?

а никак.
SET GENERATOR это из области DDL, а не DML.
какой смысл давать права на это PUBLIC'у?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
GRANT на генератор и EXECUTE BLOCK
    #39883831
sysdba22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне хоть кому бы задать, чтобы ошибку не кидало при SET GENERATOR.
...
Рейтинг: 0 / 0
GRANT на генератор и EXECUTE BLOCK
    #39883832
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
простой юзер не должен делать set, он должен делать gen_id
...
Рейтинг: 0 / 0
GRANT на генератор и EXECUTE BLOCK
    #39883833
sysdba22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ок, нашел как выкрутиться:

SELECT GEN_ID(gd_g_dbid, - GEN_ID(gd_g_dbid, 0)) FROM rdb$database

выполняется и меняет значение генератора.

через одно место, конечно...
...
Рейтинг: 0 / 0
GRANT на генератор и EXECUTE BLOCK
    #39883848
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22,

там совсем другие права (ALTER ANY SEQUENCE) нужны, но не фиг их давать кому не попадя

sysdba22через одно место, конечно...

через одно место это попытка использовать генераторы для вещей для которых он не предназначен. Пора уже забыть хитрожопые рецепты с генератором.
Лучше бы спросил: "я хочу сделать вот это ... но с генератором не получается. Как мне сделать это без генератора?"
...
Рейтинг: 0 / 0
GRANT на генератор и EXECUTE BLOCK
    #39883851
Фотография Sergey1979
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, а как с атомарностью данной конструкции?
SELECT GEN_ID(gd_g_dbid, - GEN_ID(gd_g_dbid, 0)) FROM rdb$database
Не получится ли так, что между запросом GEN_ID(gd_g_dbid, 0) и GEN_ID(gd_g_dbid -<GEN_ID(gd_g_dbid, 0)>) генератор перевёдется чем-либо и получится не 0
?
...
Рейтинг: 0 / 0
GRANT на генератор и EXECUTE BLOCK
    #39883854
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey1979Не получится ли так, что между запросом GEN_ID(gd_g_dbid, 0) и GEN_ID(gd_g_dbid
-<GEN_ID(gd_g_dbid, 0)>) генератор перевёдется чем-либо и получится не 0?

Да, получится. Точно так же как если бы это "что-то" случилось сразу после этого запроса.
В чём проблема?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
GRANT на генератор и EXECUTE BLOCK
    #39883855
Фотография Sergey1979
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в том, что члк хочет получить 0, но в общем случае при многопользовательской работе получит @#$ знает что...
Если это случилось после запроса - не волнует.
А вот если в процессе - волнует.
...
Рейтинг: 0 / 0
GRANT на генератор и EXECUTE BLOCK
    #39883857
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey1979в общем случае при многопользовательской работе получит @#$ знает что...

При многопользовательской работе он получит что угодно используя любой метод изменения
генератора. Это проблема его личных тараканов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
GRANT на генератор и EXECUTE BLOCK
    #39883872
sysdba22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это разовая операция при инициализации файла БД. Так что пользователей там еще нет параллельных. Сейчас мне максимально быстро подправить в процессе адаптации под 3.0 и ничего не поломать в других местах при этом.
...
Рейтинг: 0 / 0
GRANT на генератор и EXECUTE BLOCK
    #39883877
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22Это разовая операция при инициализации файла БД.

Нормальные люди проводят эту операцию командами "CREATE DATABASE" и "CREATE GENERATOR".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
GRANT на генератор и EXECUTE BLOCK
    #39883887
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22,

ну так и выполняй это под владельцем БД или администратором.
И ещё в EXECUTE BLOCK вообще запрещён любой DDL так же как в ХП.
...
Рейтинг: 0 / 0
GRANT на генератор и EXECUTE BLOCK
    #39884179
sysdba22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В инстоляторе бэкап базы, в процессе установки программы он восстанавливается, при первом подключении база инициализируется некоторыми начальными параметрами. С конца девяностых так работает ))
...
Рейтинг: 0 / 0
GRANT на генератор и EXECUTE BLOCK
    #39884185
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
01.11.2019 12:29, sysdba22 пишет:
> В инстоляторе бэкап базы, в процессе установки программы он
> восстанавливается, при первом подключении база инициализируется
> некоторыми начальными параметрами. С конца девяностых так работает ))

ну дык и цепляйся к базе от имени владельца, которым ты её восстанавливал.
и будет тебе фень по шую.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / GRANT на генератор и EXECUTE BLOCK
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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