Гость
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Grant & Object DDL / 25 сообщений из 28, страница 1 из 2
22.06.2020, 12:14
    #39971775
Viktor_bs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grant & Object DDL
Добрый день!
Есть подозрение (ну либо мое непонимание) что 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
22.06.2020, 12:18
    #39971777
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grant & Object DDL
Viktor_bs,

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

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

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

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

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


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

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

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

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


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

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

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

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

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


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

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


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


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

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


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

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


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

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

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

IBExpert

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

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

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


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

Viktor_bs

IBExpert

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

~ 120тыс


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

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

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

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

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


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

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

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

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

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


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

Код: 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
24.06.2020, 10:06
    #39972646
Viktor_bs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grant & Object DDL
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
24.06.2020, 10:21
    #39972650
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grant & Object DDL
Viktor_bs

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


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

Viktor_bs

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


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

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

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

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

~2 сек

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

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


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

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


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

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


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