powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Grant & Object DDL
25 сообщений из 28, страница 1 из 2
Grant & Object DDL
    #39971775
Viktor_bs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Есть подозрение (ну либо мое непонимание) что IBExpert на закладке "скрипт" редактора объектов по правам показывает немного не то...
Пример:

Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
CREATE TABLE TMP_TABLE
(
  ID INTEGER
)

CREATE OR ALTER PROCEDURE TMP_PROC_1
RETURNS (
  CNT INTEGER)
AS
BEGIN
  SELECT COUNT(*)
  FROM TMP_TABLE
  INTO :CNT;

  SUSPEND;
END

CREATE OR ALTER PROCEDURE TMP_PROC_2
RETURNS (
  CNT INTEGER)
AS
BEGIN
  SELECT COUNT(*)
  FROM TMP_TABLE
  INTO :CNT;

  SUSPEND;
END

GRANT SELECT ON TMP_TABLE TO PROCEDURE TMP_PROC_2;

SELECT *
FROM RDB$USER_PRIVILEGES UP
WHERE UP.RDB$USER STARTING WITH 'TMP_PROC_'




Где я неправ?

P.S.
IBExpert 2020.6.22.1
Firebird 2.5
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39971777
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor_bs,

непонятно, что не так. Грантуются таблицы, используемые в процедуре. Что должно быть?
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39971780
Viktor_bs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI

непонятно, что не так. Грантуются таблицы, используемые в процедуре. Что должно быть?

Кем грантуются? Где грант для TMP_PROC_1 ? кроме как в выводе DDL?
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39971808
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor_bs,

Вы в Эксперте откройте "Менеджер прав" и увидите.
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39971840
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor_bs

Кем грантуются? Где грант для TMP_PROC_1 ? кроме как в выводе DDL?


Там же написано в комментах: сгенерированы автоматически. Это автогранты, реально на момент генерации скрипта их может и не быть в базе.
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39971855
Viktor_bs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI

Вы в Эксперте откройте "Менеджер прав" и увидите.

:) Зачем? я указываю на неоднозначное поведение конкретного окна разработчику продукта, в ветке которого нахожусь.
Считайте меня бета-тестером.
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39971858
Viktor_bs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert
Viktor_bs

Кем грантуются? Где грант для TMP_PROC_1 ? кроме как в выводе DDL?


Там же написано в комментах: сгенерированы автоматически. Это автогранты, реально на момент генерации скрипта их может и не быть в базе.

Ну тогда где мой ручной грант на TMP_PROC_2?

Мне этот вопрос задал разработчик, для которого Firebird "один из" и вопрос сводился к следующему:
Я создал процедуру, Эксперт показывает что есть permision, юзеры жалуются на "no permision"

DDL процедур ведь не отличается, а гранты реально разные.
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39971892
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor_bs

Мне этот вопрос задал разработчик, для которого Firebird "один из" и вопрос сводился к следующему:
Я создал процедуру, Эксперт показывает что есть permision, юзеры жалуются на "no permision"


В менеджере прав искали?
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39971913
Viktor_bs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert
Viktor_bs

Мне этот вопрос задал разработчик, для которого Firebird "один из" и вопрос сводился к следующему:
Я создал процедуру, Эксперт показывает что есть permision, юзеры жалуются на "no permision"


В менеджере прав искали?


Вопрос был по именно этой вкладке.
Менеджером нереально пользоваться на базах с большим количеством объектов и юзеров, жутко тупит.
Лично я при возникающих вопросах смотрю в RDB$USER_PRIVILEGES, но у рядового разработчика вопрос:
"Я создал процедуру в IBExpert, если есть "автогрант" при создании процедуры, то где он, почему no permission? Если "автогранта" нет, то зачем он отображается в DDL"

Если этот вопрос больше никого из пользователей IBExpert-а не волнует, тогда вопрос закрыт, буду считать что так задумано.
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39971918
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor_bs
буду считать что так задумано.


Да, так и задумано. В том скрипте автогранты и гранты НА процедуру. Реальных привилегий процедуры в скрипте попросту нет, потому что они покрываются автогрантами.
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39971921
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor_bs

Менеджером нереально пользоваться на базах с большим количеством объектов и юзеров, жутко тупит.


Сколько всего записей в RDB$USER_PRIVILEGES?
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39971939
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я понял проблему. "Разработчики" считают, что если в скрипте написано, то и в базе должно быть. Нереально. Viktor_bs, ваши разработчики могут потребовать что угодно. Они напишут процедуру или триггер, прогонять её не будут (или в них ошибка). В закладке скрипта всё будет. В базе нет. Наверно, закладка "Скрипт" для определённых целей.
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39971944
Viktor_bs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert

Да, так и задумано. В том скрипте автогранты и гранты НА процедуру. Реальных привилегий процедуры в скрипте попросту нет, потому что они покрываются автогрантами.

Под автогрантами имеется ввиду кнопка "Раздать привилегии на объекты (ctrl+F8) в редакторе процедур или что-то другое?

IBExpert

Сколько всего записей в RDB$USER_PRIVILEGES?

~ 120тыс
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39971945
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor_bs

Под автогрантами имеется ввиду кнопка "Раздать привилегии на объекты (ctrl+F8) в редакторе процедур или что-то другое?


Да. Гранты, которые эксперт генерирует автоматически на основе синтаксического анализа текста процедуры.
В принципе, можно включать в тот скрипт и реально существующие гранты, просто до сих пор это никому не нужно было.
И в большинстве случаев они будут дублировать автогранты.

Viktor_bs

IBExpert

Сколько всего записей в RDB$USER_PRIVILEGES?

~ 120тыс


У меня есть база с 500 тыс записей в этой таблице. Ну, не летает, да, но и не тупит жутко. Хотя доступ к ней локальный. По сети, может, и будет тупить.
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39971965
Viktor_bs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert

У меня есть база с 500 тыс записей в этой таблице. Ну, не летает, да, но и не тупит жутко. Хотя доступ к ней локальный. По сети, может, и будет тупить.

Специально замерил:
Открытие закладки "права" ~10 сек
Но самое неприятное это навигация по списку объектов... еще скролом мыши куда не шло, а вот курсором иди page up/down реально жесть...
Переход с записи на запись ~1 сек
При наборе в фильтре каждый символ появляется с задержкой 1 сек.
Может на момент навигации не выполнять запросы? DisableControls?

З.Ы. Это не никого не беспокоило, потому что у подавляющего большинства базы относительно небольшие и нас это не беспокоило пока я не отобрал на некоторые критические таблицы права на SELECT и разработчикам пришлось раздавать гранты на процедуры, вот тут и всплыли все моменты...
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39972130
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor_bs

Специально замерил:
Открытие закладки "права" ~10 сек
Но самое неприятное это навигация по списку объектов... еще скролом мыши куда не шло, а вот курсором иди page up/down реально жесть...
Переход с записи на запись ~1 сек
При наборе в фильтре каждый символ появляется с задержкой 1 сек.
Может на момент навигации не выполнять запросы? DisableControls?


Да нет там запросов при скроллировании грида с правами. Только для таблиц/представлений (права на поля), но там через таймер.
Скорее всего, это фильтрация датасета тупит при большом количестве записей.
В общем, понятно, куда копать.
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39972207
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Со скроллингом и фильтрацией я разобрался, в сегодняшней версии тупить не должно.
С первоначальной загрузкой объектов в менеджер все сложнее. Оптимизировать, может, и получится немного, но все равно на большом количестве объектов влёт грузиться вряд ли будет.
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39972247
Viktor_bs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert
Со скроллингом и фильтрацией я разобрался, в сегодняшней версии тупить не должно.
С первоначальной загрузкой объектов в менеджер все сложнее. Оптимизировать, может, и получится немного, но все равно на большом количестве объектов влёт грузиться вряд ли будет.

О, совсем другое дело, навигация "летает", спасибо.

Очень не хватает быстро посмотреть все существующие права объекта...
Может чекбокс в настройках среды (чтобы не ломать существующее поведение) и
показывать дополнительно реальные права в "скрипт"?
Или в "права" чето допилить...
Я посмотрел монитором, там действительно извлекается "все по всем"... как бы для показа существующих прав большая избыточность, 10 сек ждать не годится, проще хранимку дернуть, просто очень не удобно, хотелось бы одним кликом...
В принципе RDB$USER_PRIVILEGES проиндексирована

Понятно, что ради меня никто существенно переделывать ничего не будет, но может придет в голову какое-то несложное решение?
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39972614
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor_bs

Я посмотрел монитором, там действительно извлекается "все по всем"...


Там списки объектов БД грузятся. Ну и еще кое-что. В принципе, объекты можно и из кэша эксперта грузить, тогда будет быстро.
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39972629
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В сегодняшней версии выполняешь следующий блок:

Код: plsql
1.
2.
3.
4.
5.
6.
execute ibeblock
as
begin
  ibec_SetGlobalVar('IBE$GM_USE_CACHE', TRUE);
  ibec_SetGlobalVar('IBE$GM_SHOW_MISSING_OBJECTS', FALSE);
end



и все "лишние" запросы в менеджере прав отключаются глобально.

Если только для конкретной базы нужно отключить:

Код: plsql
1.
2.
3.
4.
5.
6.
execute ibeblock
as
begin
  ibec_SetGlobalVar('IBE$GM_USE_CACHE.530', TRUE);
  ibec_SetGlobalVar('IBE$GM_SHOW_MISSING_OBJECTS.530', FALSE);
end



где 530 - id базы, его видно в SQL assistant.
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39972646
Viktor_bs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert
В сегодняшней версии выполняешь следующий блок:

Если только для конкретной базы нужно отключить:

Код: plsql
1.
2.
3.
4.
5.
6.
execute ibeblock
as
begin
  ibec_SetGlobalVar('IBE$GM_USE_CACHE.530', TRUE);
  ibec_SetGlobalVar('IBE$GM_SHOW_MISSING_OBJECTS.530', FALSE);
end



где 530 - id базы, его видно в SQL assistant.


Глобально что-то правили?
Даже без ibec_SetGlobalVar в сегодняшней версии достаточно все бодро работает.

А можно еще в комбобокс "Все" ? :)
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39972650
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor_bs

Глобально что-то правили?
Даже без ibec_SetGlobalVar в сегодняшней версии достаточно все бодро работает.


"Бодро" - это скока в граммах секундах?
А с установкой переменных сколько?
Да, там кое-что еще правилось.

Viktor_bs

А можно еще в комбобокс "Все" ? :)


Посмотрим.
Но "все" есть в комбобоксе в отдельном менеджере прав. И если его вызвать при активном окне процедуры "BLABLA", то ее права и будут загружены, как раз в режиме "все".
Правда, там еще какие-то лишние обновления выполняются непонятно для чего, поэтому не настолько шустро все. Но это я проверю.
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39972661
Viktor_bs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert

"Бодро" - это скока в граммах секундах?

~3 сек против 9-10. Уже не раздражает... все познается в сравнении :)
IBExpert

А с установкой переменных сколько?

~2 сек

Спасибо.
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39972978
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor_bs

А можно еще в комбобокс "Все" ? :)


Добавил, но в конец списка.
...
Рейтинг: 0 / 0
Grant & Object DDL
    #39973000
Viktor_bs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert
Viktor_bs

А можно еще в комбобокс "Все" ? :)


Добавил, но в конец списка.

В сегодняшнем архиве вчерашний утренний exe
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Grant & Object DDL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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