Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / GRANT на генератор и EXECUTE BLOCK / 18 сообщений из 18, страница 1 из 1
31.10.2019, 16:44
    #39883757
sysdba22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GRANT на генератор и EXECUTE BLOCK
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
31.10.2019, 17:30
    #39883801
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GRANT на генератор и EXECUTE BLOCK
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
31.10.2019, 17:53
    #39883825
sysdba22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GRANT на генератор и EXECUTE BLOCK
а как?

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
31.10.2019, 17:57
    #39883829
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GRANT на генератор и EXECUTE BLOCK
sysdba22а как?

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

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

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

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

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

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

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

через одно место это попытка использовать генераторы для вещей для которых он не предназначен. Пора уже забыть хитрожопые рецепты с генератором.
Лучше бы спросил: "я хочу сделать вот это ... но с генератором не получается. Как мне сделать это без генератора?"
...
Рейтинг: 0 / 0
31.10.2019, 18:51
    #39883851
Sergey1979
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GRANT на генератор и EXECUTE BLOCK
Кстати, а как с атомарностью данной конструкции?
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
31.10.2019, 18:58
    #39883854
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GRANT на генератор и EXECUTE BLOCK
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
31.10.2019, 19:00
    #39883855
Sergey1979
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GRANT на генератор и EXECUTE BLOCK
Проблема в том, что члк хочет получить 0, но в общем случае при многопользовательской работе получит @#$ знает что...
Если это случилось после запроса - не волнует.
А вот если в процессе - волнует.
...
Рейтинг: 0 / 0
31.10.2019, 19:02
    #39883857
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GRANT на генератор и EXECUTE BLOCK
Sergey1979в общем случае при многопользовательской работе получит @#$ знает что...

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

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

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

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


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