powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проверить есть ли права на объект без парсинга
24 сообщений из 24, страница 1 из 1
Проверить есть ли права на объект без парсинга
    #40123666
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет,

Нужно проверить есть права на таблицу X, любым пользователем. Можно было бы сделать try-catch, но такое приводит к

WARNING: too many parse errors ...
PARSE ERROR: ...

в алерт логе.
Заранее не известно как могут быть выданы права - через роль, напрямую или какую системную привилегию.

Логика такая: есть права - используем этот объект, нет - идем более сложным путём.
Хочется как-то проверить есть ли права, и желательно сделать это дешевле чем вариант с try-catch, ну или как минимум избежать сообщений в alert.log
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40123676
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkomyagkii_newbiМожно было бы сделать try-catch, но такое приводит к

WARNING: too many parse errors ...

Очевидно потому, что try-catch это конструкция MS SQL и применять её в Oracle -
плохая идея. Здесь другие способы ловли ошибок.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40123683
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

try-catch это общее название, в java так же. Тут не поможет если это делать в exception блоке pl/sql, так как прежде чем туда попасть будет парс в sql движке. Их(неудачных парсов) я и хочу избежать. Если их будет достаточно много - об этом появятся сообщения в алерт логе, программа минимум - избежать этих сообщений.
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40123724
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkomyagkii_newbi,

Можно, конечно, проверять есть ли нужные права на таблицу,
выбирая данные из словарных представлений
ALL_TAB_PRIVS_RECD, USER_ROLE_PRIVS, ROLE_TAB_PRIVS, SESSION_ROLES и др.

Но это точно будет недешевой операцией, особенно, если в базе очень много объектов.

А вообще какая-то странная задача.
Пишете программу-шпиона, чтобы по базе рылась и следов не оставляла?
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40123799
Фотография AlexFF__|
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkomyagkii_newbi
Тут не поможет если это делать в exception блоке pl/sql, так как прежде чем туда попасть будет парс в sql движке.

DSQL
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40123814
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexFF__|
Melkomyagkii_newbi
Тут не поможет если это делать в exception блоке pl/sql, так как прежде чем туда попасть будет парс в sql движке.
DSQL
Ты не понял, это всё равно неуспешный парс, засоряющий alert.log.
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40123816
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkomyagkii_newbi
через роль
Где располагается код, могущий упасть? Anonymous block? Named unit? Какой AUTHID?
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40123826
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic
Melkomyagkii_newbi
через роль
Где располагается код, могущий упасть? Anonymous block? Named unit? Какой AUTHID?


жаба prepared statement, просто запрос. можно на анонимный блок переделать.
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40123839
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запоминайте состояние по факту ошибки парсера - и шторма левых парсов не будет.
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40123841
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,

проблема не в том что код много раз вызывается в одной сессии, а в том что он вызвается во многих сессиях из которых у доброй половины прав не хватает.
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40123851
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkomyagkii_newbi
проблема не в том что код много раз вызывается в одной сессии, а в том что он вызвается во многих сессиях из которых у доброй половины прав не хватает.

Запоминайте в БД :)
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40123900
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkomyagkii_newbi

проблема не в том что код много раз вызывается в одной сессии, а в том что он вызвается во многих сессиях из которых у доброй половины прав не хватает.


И? Если пользователь вызывает необходимый код то почему прав не хватает? А если вызывать не должен то почему вызывает?

SY.
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40123958
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY
А если вызывать не должен то почему вызывает?

Полагаю, речь о функционале, подобном имеющемуся в PL/SQL Developer - при наличии привилегий использует dba% views, но если нет - то готов удовлетвориться и user% views
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40124013
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY
Melkomyagkii_newbi

проблема не в том что код много раз вызывается в одной сессии, а в том что он вызвается во многих сессиях из которых у доброй половины прав не хватает.


И? Если пользователь вызывает необходимый код то почему прав не хватает? А если вызывать не должен то почему вызывает?

SY.


потому что код этот общий(платформенный) для кучи приложений, в том числе самодельных(клиентами), а они могут ходить разными пользователями. Причем он так написан что если прав не хватает, то получает ту же информацию в любом случае, но более дорогим способом.
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40124014
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous
SY
А если вызывать не должен то почему вызывает?

Полагаю, речь о функционале, подобном имеющемуся в PL/SQL Developer - при наличии привилегий использует dba% views, но если нет - то готов удовлетвориться и user% views


да, типа того.
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40124015
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему вообще ошибка прав доступа вылазит как "parse error", да ещё и в алерт
логе?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40124018
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

А почему вообще ошибка прав доступа вылазит как "parse error", да ещё и в алерт
логе?


потому что это и есть parse error. на этапе семантического анализа(парса кусок) ведь проявляется. Могут быть и другие проблемы с парсом которые к такому ворнингу в алерт приведут, причины неудачного парса там тоже подсказываются "PARSE ERROR: ospid=27875, error=6550 for statement:..." тут error говорит что за ORA- ошибка.
Вылазит потому как неоднократна - зачем вы делаете много раз бесполезную вещь, об этом предупреждение. Например если у вас в блоке exception when others then null и вы туда часто попадаете из-за ошибок на парсинге запроса из этого блока.
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40124024
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите ноту
WARNING: Too Many Parse Errors And error=937 In Database Alert Log (Doc ID 2590218.1)

Возможно, что это оно.

Что в вашем случае пишут здесь?
Код: plsql
1.
PARSE ERROR: ...


Какие именно ошибки показаны?
Исключительно error=6550?
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40124028
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*Plus,

у меня то, что описано. Не хватает прав, часто. Мы это глотаем и идем по более дорогому пути. Хочу переделать так чтобы сразу туда шли если прав не хватит, определить хватит ли прав без парсинга запроса.
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40124030
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkomyagkii_newbi
SQL*Plus,

у меня то, что описано. Не хватает прав, часто .
Мы это глотаем и идем по более дорогому пути.
Хочу переделать так чтобы сразу туда шли если прав не хватит,
определить хватит ли прав без парсинга запроса.

Всё равно не должно оно заполнять алертлог этими сообщениями.
Обратитесь в техподдержку, выясните с их помощью точную причину,
а потом уже думайте, как эту причину устранять.

Есть сного багов, вызывающих такие сообщения.
Может быть вы встретили как раз один из этих багов.

Рекомендация:
Заведите SR на сайте MOS.
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40124036
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*Plus,

если я сто тысяч раз за час выполню в разных сессиях запрос, прав на который у меня нет, не будет этих сообщений? Там не то чтобы заполняет алерт лог, но мозолит глаз и количество неудач подсвечивает.
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40124060
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*Plus
Всё равно не должно оно заполнять алертлог этими сообщениями.
Это фича последних ораклов (где-то >=18). Заполняет.
Например ORDS без APEX-а.
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40124107
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkomyagkii_newbi

Хочется как-то проверить есть ли права


идеея возможно бредовая, но ...

вызывать DBMS_METADATA для обьекта?

.....
stax
...
Рейтинг: 0 / 0
Проверить есть ли права на объект без парсинга
    #40124109
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax
Melkomyagkii_newbi

Хочется как-то проверить есть ли права

идеея возможно бредовая, но ...

вызывать DBMS_METADATA для обьекта?
И основной работой базы данных станет выполнение DBMS_METADATA...
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проверить есть ли права на объект без парсинга
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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