|
Странность с REVOKE
|
|||
---|---|---|---|
#18+
FB 3.0.4. Есть две идентичные базы. На одной из них выполняю автогрант прав в IBExpert'е: Код: sql 1. 2.
И то, и другое - это хранимые процедуры. При выполнении скрипта на одной базе, все ОК. На другой же FB сообщает об ошибке: Код: plaintext 1. 2. 3. 4.
Проверил другие ХП и выяснил, что выполнение "REVOKE ALL ON ANY_SP FROM PROCEDURE ANY_ANOTHER_SP" приводят к подобному сообщению - что таблица с именем ХП не существует. Выполнение "REVOKE ALL ON ANY_TABLE FROM PROCEDURE ANY_ANOTHER_SP" без проблем. Попытки REVOKE по отношению к UDF так же откатываются. В чем может быть причина, куда смотреть? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2018, 08:22 |
|
Странность с REVOKE
|
|||
---|---|---|---|
#18+
А если REVOKE ALL ON *PROCEDURE* <SP_NAME> ... ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2018, 15:18 |
|
Странность с REVOKE
|
|||
---|---|---|---|
#18+
Roman Simakov, Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2018, 02:24 |
|
Странность с REVOKE
|
|||
---|---|---|---|
#18+
Роман, добавлю, что у серверов разные версии. При выполнении через sql-редактор в IBExpert'е: На 3.0.4.32987: Код: sql 1.
Код: plaintext 1.
На 3.0.4.33003: Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2018, 02:29 |
|
Странность с REVOKE
|
|||
---|---|---|---|
#18+
CyberMax> 3.0.4.32987: CyberMax> 3.0.4.33003: Это на одной и той же БД так? С системными таблицами всё ОК ? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2018, 03:47 |
|
Странность с REVOKE
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, Базы физически разные, но метаданные одни и те же. Я подозреваю, что это из-за CORE-5852 , который закоммитили как раз между этими билдами. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2018, 03:58 |
|
Странность с REVOKE
|
|||
---|---|---|---|
#18+
CyberMax> Я подозреваю, что это из-за CORE-5852 Вполне возможно. Его автор как раз тут, может проверить и ответить. :) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2018, 04:28 |
|
Странность с REVOKE
|
|||
---|---|---|---|
#18+
Можно попросить сделать воспроизводимый скрипт, независящий от вашей базы, чтобы воспроизводить в isql? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2018, 11:06 |
|
Странность с REVOKE
|
|||
---|---|---|---|
#18+
Roman SimakovМожно попросить сделать воспроизводимый скрипт, независящий от вашей базы, чтобы воспроизводить в isql? Собственно я воспроизвел. ALL у процедуры нельзя отозвать прямо по правилам парсера. Только EXECUTE. Вот пример. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2018, 11:26 |
|
Странность с REVOKE
|
|||
---|---|---|---|
#18+
Roman Simakov, Так это так и останется? У функций тоже нельзя отнять права через ALL. И еще непонятка по билду 32987. Делаю грант на выполнение UDF DATE_TO_PERIOD() для ХП: Код: sql 1.
Потом снимаю права: Код: sql 1.
FB возвращает предупреждение: Код: plaintext 1.
Вопросы: 1. Что за Select on DATE_TO_PERIOD, если я грантовал Execute? 2. Что за Insert on DATE_TO_PERIOD? О какой вставке идет речь? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2018, 11:40 |
|
Странность с REVOKE
|
|||
---|---|---|---|
#18+
Сейчас работает верно. А вот до фикса была бага. Прошу рассмотреть пример на сборке ДО комита. Мои комментарии в листинге Код: 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. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54.
Мое заключение, что СУБД теперь работает корректно, проверяя существование объектов нужного типа, а IBExpert не верно генерит скрипт. Правильно использовать явно и слово EXECUTE при отзыве прав у процедур, и слово PROCEDURE после ON, для явного указания типа объекта. Иначе ФБ справедливо считает его таблицей. Т.е. равнозначно что ON TABLE T, что ON T, но это не справедливо для остальных объектов. Раньше тип объекта проглатывался, права отнимались по факту у несуществующей таблицы без проверок ее существования. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2018, 11:55 |
|
|
start [/forum/topic.php?fid=40&msg=39673599&tid=1561041]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 306ms |
total: | 471ms |
0 / 0 |