|
ASE. 15.7 SP135. non-impersonated session
|
|||
---|---|---|---|
#18+
Всем доброго! Вдруг с установкой нового патча (SP135) выхватил проблему с созданием процедуры, для которой указывалась кляуза "execute as owner". Ругается следующим образом: автор Execute as owner procedure cannot be created by an alias or with the SETUSER command when the procedure has SQL statements that reference objects across databases. Create the procedure from a non-impersonated session . Собственно все работало (да и работает) на предыдущих SP(61/122). СайБук молчит про это безобразие под названием "a non-impersonated session". Кто-нибудь знает что это и куда это? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 17:54 |
|
ASE. 15.7 SP135. non-impersonated session
|
|||
---|---|---|---|
#18+
В точности не знаю. Ни разу не встречал такой ошибки. Но предположу что корни проблемы растут из: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc01672.1570/html/sec_admin/X53658.htm Ну а лечить достаточно просто. Если ХП должна принадлежать ЮзеруА, то и логинится на сервер надо под этим самым юзером. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 18:37 |
|
ASE. 15.7 SP135. non-impersonated session
|
|||
---|---|---|---|
#18+
White OwlНу а лечить достаточно просто. Если ХП должна принадлежать ЮзеруА, то и логинится на сервер надо под этим самым юзером. Казалось бы да, но не помогает. Делаю явное указание овнера процедуры при создании = тому, под кем залогинен - ошибка та же. White OwlВ точности не знаю. Ни разу не встречал такой ошибки. Да вот же. До SP135 все работало прекрасно, код не менялся. А тут такая нехорошая подстава. Есть, конечно, обходные варианты = как заставить это работать и отказаться от execute as owner, но так же есть желание докопаться до корня проблемы... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 18:46 |
|
ASE. 15.7 SP135. non-impersonated session
|
|||
---|---|---|---|
#18+
Mikle83 отказаться от execute as ownerВ принципе, есть еще один вариант. Если внутри процедуры идут игры с логинами (set identity_* или setuser) то у процедуры могут появиться дополнительные ограничения. Вплоть до полной невозможности запуска никем кроме владельца ХП. Ну и проблемы несовпадения владельца и создателя тоже никуда не деваются.... В общем, так: вырезай из проблемной процедуры весь код пока ошибка не исчезнет - будешь знать какая именно команда хулиганит. Результат публикуй тут. Ну и еще раз обрати внимание на того кем заходишь на сервер, в кого ты алиасишься в базе данных и кто заявляется владельцем процедуры. И чтоб никаких setuser не мешалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 19:04 |
|
ASE. 15.7 SP135. non-impersonated session
|
|||
---|---|---|---|
#18+
White Owl, похоже просто нельзя объекты другой базы пользовать. Т.е. тривиальная процедура по типу Код: sql 1. 2. 3. 4. 5. 6.
уже падает с этой ошибкой. Владелец у баз один и тот же и равен владельцу процедуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 19:37 |
|
ASE. 15.7 SP135. non-impersonated session
|
|||
---|---|---|---|
#18+
Mikle83White Owl, похоже просто нельзя объекты другой базы пользовать.ЭТО не может быть правдой. У меня куча процедур работает на кросс-базовой основе. Mikle83Т.е. тривиальная процедура по типу Код: sql 1. 2. 3. 4. 5. 6.
уже падает с этой ошибкой. Владелец у баз один и тот же и равен владельцу процедуры.эээээ..... Ну во первых: http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc36272.1570/html/commands/X52197.htm Нет такой опции "execute as owner". Эта опция официально появилась в 16-ой версии. Ты уверен что у тебя 15.7? :) Ну а во вторых, у тебя уже владельцы меняются. DBO не может быть логином. Ты логинишься как простой юзер, который либо объявлен как владелец базы, либо добавлен в dbo как псевдоним. Создатель процедуры уже не равен владельцу процедуры. Ты уже нарушаешь правило ownership chains. Оно странное, крышесносительное и не очень удобное, но оно есть. И его чрезвычайно важно соблюдать в кросс-базовой работе. Если кратко, то делать надо так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
При этом, mary НЕ МОЖЕТ быть dbo в db2. И она ОБЯЗАНА быть создателем таблицы t в базе db1. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 20:52 |
|
ASE. 15.7 SP135. non-impersonated session
|
|||
---|---|---|---|
#18+
White OwlMikle83White Owl, похоже просто нельзя объекты другой базы пользовать.ЭТО не может быть правдой. У меня куча процедур работает на кросс-базовой основе. Эт здорово. У меня их тоже достаточно. Еще раз повторю до SP135 все работало прекрасно (да и работает). Проблема возникла только на этом патче. White Owlэээээ..... Ну во первых: http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc36272.1570/html/commands/X52197.htm Нет такой опции "execute as owner". Эта опция официально появилась в 16-ой версии. Ты уверен что у тебя 15.7? :) А мужики-то не знают :) Они это еще в SP100 прикрутили http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc36272.1572/html/commands/X52197.htm?resultof="create" "creat" "procedure" "procedur" White OwlТы логинишься как простой юзер, который либо объявлен как владелец базы, либо добавлен в dbo как псевдоним. Псевдоним для DBO. Но разница не большая - даже если делаю тестовые базы с одним владельцем - проблема та же Еще раз отмечу - до SP135 все это прекрасно работало и структура базы не менялась. Поставил патч - пошла проблема. На серверах без патча = проблемы нет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2015, 10:16 |
|
ASE. 15.7 SP135. non-impersonated session
|
|||
---|---|---|---|
#18+
Mikle83Они это еще в SP100 прикрутили а в реальности уже на 61 работает ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2015, 10:20 |
|
ASE. 15.7 SP135. non-impersonated session
|
|||
---|---|---|---|
#18+
Mikle83, Execute as owner procedure cannot be created by an alias ... А если попробовать создать процедуру от пользователя, кторый прописан в базе явно, а не как алиас на dbo. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2015, 12:10 |
|
ASE. 15.7 SP135. non-impersonated session
|
|||
---|---|---|---|
#18+
Забыл парольMikle83, Execute as owner procedure cannot be created by an alias ... А если попробовать создать процедуру от пользователя, который прописан в базе явно, а не как алиас на dbo. Пробовал. Те же яйца - вид сбоку. Для меня пока самая загадка, это фраза "a non-impersonated session". Что под этим могли подразумевать разработчики СайбезаСАПа - пока не понимаю ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2015, 15:26 |
|
ASE. 15.7 SP135. non-impersonated session
|
|||
---|---|---|---|
#18+
Зачем это все? Зачем много баз, зачем дергать из одной другую, зачем процедуры не под dbo? Все это суета... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2015, 21:10 |
|
ASE. 15.7 SP135. non-impersonated session
|
|||
---|---|---|---|
#18+
MasterZiv, да вот не знаю, почему Сайбез выносит мониторинговые и системные таблицы (типа sysprocesses/syslogins) в отдельную БД :) Да и так, к примеру, разделение архивных и оперативных таблиц - позволяет, как минимум, экономить время на ежедневных бэкапах Ибо архивные таблицы "пополняются" по бизнес-флоу - только лишь по выходным, а согласно политике этой конторы - бэкап должен делаться полноценный ежедневно :( (зачем - это оч. схоластический вопрос, но так вот построены процессы)... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2015, 13:12 |
|
ASE. 15.7 SP135. non-impersonated session
|
|||
---|---|---|---|
#18+
Mikle83Забыл парольMikle83, Execute as owner procedure cannot be created by an alias ... А если попробовать создать процедуру от пользователя, который прописан в базе явно, а не как алиас на dbo. Пробовал. Те же яйца - вид сбоку. Для меня пока самая загадка, это фраза "a non-impersonated session". Что под этим могли подразумевать разработчики СайбезаСАПа - пока не понимаю может попробовать перед созданием процедуры выполнить команду Код: sql 1. 2. 3. 4. 5. 6.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2015, 18:16 |
|
|
start [/forum/topic.php?fid=55&msg=39033433&tid=2009751]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
162ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 284ms |
0 / 0 |