|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
Не появилось ли в языке кляузы типа autogrant? А то может я зря поезда под откос пускаю. PS про ибэксперт знаю, про вычисление зависимостей из системных таблиц тоже. Модератор: Edited. Прошу в этом форуме не применять олбанский. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2011, 09:33 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
pastorНе появилось ли в языке кляузы типа autogrant? Нет автоматического создания процедур -> нет автоматической раздачи им прав. По-моему логично. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2011, 13:39 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovpastorНе появилось ли в языке кляузы типа autogrant? Нет автоматического создания процедур -> нет автоматической раздачи им прав. По-моему логично. Отчего ж? Создаю процедуру. Зависимости у сервера есть. Он же ее и компилит. Если я бы добавил бы кляузу - "еще и права", мог бы и создать. Ну нет, так и нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2011, 15:04 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
pastorСоздаю процедуру. А вот раз ты её создаёшь, так это твои проблемы. Если бы процедуру сервер создавал по собственной инициативе... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2011, 15:16 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovpastorСоздаю процедуру. А вот раз ты её создаёшь, так это твои проблемы. Если бы процедуру сервер создавал по собственной инициативе... вот даю, я, скажем, серверу команду: "сервер! создать процедуру! раз! два!" а он мне такой - "исполнено, хозяин" а я ему: "присвоить процедуре внеочередное звание и пожизненные права!" а он мне - "слушаю и повинуюсь". и все одним оператором. насчет моих проблем - ~400 шт на каждый проект. сделать при сборке базы - еще можно, а вот у клиента при апдейте - уже гемор. на все что в базе есть права давать не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 08:24 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
pastor, Тем, кому насрать на секьюрити, сидят под сисдба мастеркеевичем и не парятся насчет пустых грантов паблику. И часто в такой связке еще крутится самопальная авторизация, оторванная от учетных записей сервера. Или вам не огульная демократия в базе нужна? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 08:54 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
pastorнасчет моих проблем - ~400 шт на каждый проект. сделать при сборке базы - еще можно, а вот у клиента при апдейте - уже гемор. на все что в базе есть права давать не надо.Доступ к списку пользователей БД, хранящихся в security2.fdb, невозможен. Но доступ к ролям, которые в каждой базе в таблице rdb$roles, - открыт. Если пользователям БД грантованы роли, то сделайте сначала своё обновление 100500 процедур, а затем запустите execute block, обрабатывающий в цикле rdb$procedures и создающий строки- выражения вида 'grant execute procedure '||..., а затем сразу выполняющий каждое такое выражение. Примерно так: DDL: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Проверяем результат: Код: sql 1. 2. 3. 4.
RDB$USERRDB$PRIVILEGERDB$RELATION_NAMECOMMON_USERXP1COMMON_USERXP2COMMON_USERXP3COMMON_USERXP4COMMON_USERXP5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 10:12 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
arnipastor, Тем, кому насрать на секьюрити, сидят под сисдба мастеркеевичем и не парятся насчет пустых грантов паблику. И часто в такой связке еще крутится самопальная авторизация, оторванная от учетных записей сервера. Или вам не огульная демократия в базе нужна? а? про кляузу autogrant выборочно не читаем? стал бы при демократии правами всяких меньшинств заморачиваться. у нас тоталитаризьмъ (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 10:20 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
pastor, погодь, так тебе нужны не права юзеров на вызов процедур, а права самих процедур на используемые в тексте этих процедур объекты? и чтобы эти права выдавались автоматом в момент компляции? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 10:30 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
arnipastor, погодь, так тебе нужны не права юзеров на вызов процедур, а права самих процедур на используемые в тексте этих процедур объекты? и чтобы эти права выдавались автоматом в момент компляции? меня можно было понять как-то иначе? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 10:37 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
pastor, Из текста не особенно понятно. Пока в тайтл не вчитался ... Таблоида жалко: такой пример набрать не поленился, а тоже видимо не проснулся еще. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 10:41 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
Таблоид, э, нет. это я сделаю сам, руками. ща делается так: select case when max(d.RDB$DEPENDED_ON_TYPE) = 0 then cast('grant all on ' as varchar(40)) when max(d.RDB$DEPENDED_ON_TYPE) = 5 then cast('grant execute on procedure ' as varchar(40)) end|| d.RDB$DEPENDED_ON_NAME || ' to ' || max(pt.OBJ_TYPE) || ' ' || d.RDB$DEPENDENT_NAME || ' ^' from RDB$DEPENDENCIES d join (select p.RDB$PROCEDURE_NAME, cast('procedure' as varchar(10)), null from RDB$PROCEDURES p union all select t.RDB$TRIGGER_NAME, cast('trigger' as varchar(10)), t.RDB$RELATION_NAME from RDB$TRIGGERS t where t.RDB$SYSTEM_FLAG = 0) as pt(NAME, OBJ_TYPE, OWNER) on pt.NAME = d.RDB$DEPENDENT_NAME where d.RDB$DEPENDED_ON_NAME not in ('WIN1251', 'PXW_CYRL', 'OCTETS') and d.RDB$DEPENDED_ON_TYPE in (0, 5) and (pt.OWNER <> d.RDB$DEPENDED_ON_NAME or pt.OWNER is null) and not exists ( select * from RDB$USER_PRIVILEGES up join (select p.RDB$PROCEDURE_NAME from RDB$PROCEDURES p union all select t.RDB$TRIGGER_NAME from RDB$TRIGGERS t) as OBJ_USERS(NAME) on OBJ_USERS.NAME = up.RDB$USER where up.RDB$USER = d.RDB$DEPENDENT_NAME and up.RDB$RELATION_NAME = d.RDB$DEPENDED_ON_NAME) -- and not exists (select * from RDB$USER_PRIVILEGES where RDB$USER = 'PUBLIC' and RDB$RELATION_NAME = d.RDB$DEPENDED_ON_NAME) and d.RDB$DEPENDED_ON_NAME not starting 'RDB$' group by d.RDB$DEPENDENT_NAME, d.RDB$DEPENDED_ON_NAME order by 1 два НО. - это делается при создании БД - даются ВСЕ права, хотя в большинстве случаеd нужно SELECT ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 10:41 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
arnipastor, Из текста не особенно понятно. Пока в тайтл не вчитался ... Таблоида жалко: такой пример набрать не поленился, а тоже видимо не проснулся еще. если у него не будет выхлопа, его порвет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 10:43 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
pastor, надо на каком-то конкретном примере (скрипте) сформулировать задачу; я не понимаю, чего требуется. Выстроить полное дерево зависимостей объект "Х", т.е. найти все объекты, от которых он зависит как напрямую, так и опосредованно, - можно, рекурсивным запросом. Пример, хоть на другую тему и с извратом, см. тут . ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 10:51 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
pastorесли у него не будет выхлопа, его порвет :)у меня через пару часов встреча с юзерами, там и оторвусь по полной :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 10:52 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
Таблоидpastor, надо на каком-то конкретном примере (скрипте) сформулировать задачу; я не понимаю, чего требуется. Выстроить полное дерево зависимостей объект "Х", т.е. найти все объекты, от которых он зависит как напрямую, так и опосредованно, - можно, рекурсивным запросом. Пример, хоть на другую тему и с извратом, см. тут . не нада дерева. надо знать, что Х пользует Y на select, Z на update. сервер это знает, но никому не говорит. IBExpert, кажется, парсит исходники. Исходников в базе заказчика нет. Точнее, они появляются на краткий миг апдейта. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 11:34 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
pastorнадо знать, что Х пользует Y на select, Z на update. сервер это знает, но никому не говорит. А никто не спрашивает :) pastorIBExpert, кажется, парсит исходники.Да pastorИсходников в базе заказчика нет. Точнее, они появляются на краткий миг апдейта.Ну так в чём проблема в апдейт-скрипте выдать соотв. гранты, подготовленные дома с помощью того же IBE ? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 11:39 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
hvladpastorнадо знать, что Х пользует Y на select, Z на update. сервер это знает, но никому не говорит. А никто не спрашивает :) pastorIBExpert, кажется, парсит исходники.Да pastorИсходников в базе заказчика нет. Точнее, они появляются на краткий миг апдейта.Ну так в чём проблема в апдейт-скрипте выдать соотв. гранты, подготовленные дома с помощью того же IBE ? 0. IBE мы не покупали для коммерческой разработки 1. вероятность ошибки при ручной раздаче прав, особенно при правке 2. цена ошибки 3. это все равно есть в сервере. пуркуа бы и не па? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 11:51 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
pastorhvladНу так в чём проблема в апдейт-скрипте выдать соотв. гранты, подготовленные дома с помощью того же IBE ? 0. IBE мы не покупали для коммерческой разработки 1. вероятность ошибки при ручной раздаче прав, особенно при правке 2. цена ошибки 3. это все равно есть в сервере. пуркуа бы и не па?0. Гм. А вы не в России разве ? :) 3. Оно-то, теоритически, есть, но на практике - не совсем :) Зависимости строятся при парсинге BLR, в частности при создании\альтере процедуры. Но там, iirc, нет нужных для грантов операций - только факт наличия зависимости. Вот при препарировании запроса перед выполнением - там, да, проверяются права и строится более подробный список зависимостей. Но это уже совсем другой момент времени, не связанный с ДДЛ процедуры\триггера. Конечно - нет нерешаемых задач, но ... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 12:03 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
Hello, pastor! You wrote on 29 декабря 2011 г. 12:03:04: pastorэто все равно есть в сервере.нету этого в сервере. pastorпуркуа бы и не па?продолжай хотеть. -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 12:04 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
hvladpastorпропущено... 0. IBE мы не покупали для коммерческой разработки 1. вероятность ошибки при ручной раздаче прав, особенно при правке 2. цена ошибки 3. это все равно есть в сервере. пуркуа бы и не па?0. Гм. А вы не в России разве ? :) 3. Оно-то, теоритически, есть, но на практике - не совсем :) Зависимости строятся при парсинге BLR, в частности при создании\альтере процедуры. Но там, iirc, нет нужных для грантов операций - только факт наличия зависимости. Вот при препарировании запроса перед выполнением - там, да, проверяются права и строится более подробный список зависимостей. Но это уже совсем другой момент времени, не связанный с ДДЛ процедуры\триггера. Конечно - нет нерешаемых задач, но ... :) 0. таки в РФ. и что? продукт коммерческий? значит надо платить. 0.+ в ночной билд вкрячивать еще и эксперт не хочется. 3+. Что хочет сервер за оператор вида Код: sql 1.
;) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 12:09 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
pastor0. таки в РФ. и что? продукт коммерческий? значит надо платить.Ну так у него лицензия отдельная вроде (не вникал в детали вокруг слова "коммерческий"). pastor0.+ в ночной билд вкрячивать еще и эксперт не хочется.Вот - с этого нужно было начинать :) pastor3+. Что хочет сервер за оператор вида Код: sql 1.
;)<Стоимость коммерческой лицензии IBE> * N, N > 1 ;) Если серьёзно - трекер вроде не закрыт и функционирует. Правда, в общем порядке :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 12:15 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
hvladpastor3+. Что хочет сервер за оператор вида Код: sql 1.
;)<Стоимость коммерческой лицензии IBE> * N, N > 1 ;) Если серьёзно - трекер вроде не закрыт и функционирует. Правда, в общем порядке :) и в трекер напишу. и будущему президенту! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 12:25 |
|
Автоматическая раздача прав процедурам и триггерам
|
|||
---|---|---|---|
#18+
hvladЕсли серьёзно - трекер вроде не закрыт и функционирует. Правда, в общем порядке :) http://tracker.firebirdsql.org/browse/CORE-3725 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2012, 16:46 |
|
|
start [/forum/topic.php?fid=40&msg=37597285&tid=1562408]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 307ms |
total: | 438ms |
0 / 0 |