Каковы минимальные привилегии пользователя oracle для создания базы данных и выполнения отложенных миграций в EF6 Code First - PullRequest
0 голосов
/ 13 мая 2019

при обновлении базы данных с помощью кода EF6 вначале с переносами ORACLE выдает такую ​​ошибку:

ORA-00604: ошибка возникла при рекурсивном УРОВНЕ SQL 1 \ nORA-06519: обнаружена активная автономная транзакция и выполнен откат \ nORA-065212 "

та же операция хорошо работала на наших серверах разработки. но на нашем клиентском сервере это не работает.

У меня есть сомнения по поводу привилегий пользователя.

пользователь на нашем сервере разработки ПРЕДОСТАВЛЯЕМЫЕ РОЛИ => ПОДКЛЮЧИТЬ (ПРЕДОСТАВЛЕНО, ПО УМОЛЧАНИЮ), DBA (ПРЕДОСТАВЛЕНО, ПО УМОЛЧАНИЮ) Системные привилегии => НЕОГРАНИЧЕННОЕ СТОЛОВОЕ МЕСТО (ПРЕДОСТАВЛЕНО)

пользователь в привилегиях на клиентском сервере Предоставленные роли => СОЕДИНИТЬ (ПО УМОЛЧАНИЮ), ресурс (ПО УМОЛЧАНИЮ) Системные привилегии => НЕОГРАНИЧЕННОЕ СТОЛ ()

Я искал в интернете, но ничего не смог найти. Каковы минимальные привилегии пользователя для создания базы данных и обновления, ожидающие обновления в коде EF 6, сначала для oracle

1 Ответ

0 голосов
/ 13 мая 2019

Вот соответствующая строка из стека ошибок:

ORA-06519: активная автономная транзакция обнаружена и откатана.

Это проблема дизайна и не имеет ничего общего с привилегиями.

Где-то в вашем коде у вас есть pragma autonomous_transaction, определенный в программном модуле, который не имеет COMMIT или ROLLBACK. Автономная транзакция не может выполняться после конца программного модуля и поэтому должна быть зафиксирована (или откатана) до этого. Если поток программы достигает конца модуля без фиксации, Oracle бросает ORA-06519.

Решение состоит в том, чтобы пролистать ваш код, найти автономную транзакцию и удалить ее или добавить необходимый коммит. Какой вариант правильный, зависит от бизнес-логики, которую вы пытаетесь реализовать. Я нахожу, что pragma autonomous_transaction имеет тенденцию быть использованным как препятствие для сломанной модели данных или некорректной бизнес-логики. Если вы не входите в систему или не проводите аудит, лучшим решением, вероятно, будет удаление.

...