Гость
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Восстановленная из дампа процедура перестала видеть таблицы. / 5 сообщений из 5, страница 1 из 1
28.03.2018, 17:34
    #39622236
makondo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановленная из дампа процедура перестала видеть таблицы.
ASE 12.5, две одинаковые среды, отличаются именами.

Процедура обращается к таблицам в своей схеме.
На одной среде успешно выполняется, на другой выдает горсть ошибок о том, что таблиц не существует.
Запуск идет от одного пользователя, под которым они и создавались.

Код: sql
1.
Error (208) TRN_EXT not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output).



права на таблицы в обоих средах одинаковые
Код: sql
1.
2.
3.
4.
5.
6.
7.
sp_helprotect 'TRN_EXT'  

MxReaderRole	Grant	Select	TRN_EXT	All	FALSE
dbo	Grant	Delete	TRN_EXT	All	FALSE
dbo	Grant	Insert	TRN_EXT	All	FALSE
dbo	Grant	Update	TRN_EXT	All	FALSE
public	Grant	Select	TRN_EXT	All	FALSE



Перекомпиляция или пересоздание приводит к тому, что таблицы становятся видны, но не ясно, сколько еще таких процедур может появиться, и какова причина.

Есть ли какой-то способ понять это в Sybase ASE ?
Хотя бы можно найти такие инвалидные процедуры? Не хотелось бы встретиться с таким поведением на проде.


--
У мудрого человека нет врагов - только учителя
...
Рейтинг: 0 / 0
28.03.2018, 18:02
    #39622250
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановленная из дампа процедура перестала видеть таблицы.
Самая частая причина для такого:
- бекап базы на одном сервере и восстановление на другом.
- "общий" логин создавался на серверах по отдельности и имеет разные suid
Вот по suid и проверяй оно это или нет. Ищи их в master..syslogins

Проще всего предотвращать - создавать сервисные аккаунты (которые будут заниматься созданием объектов) сразу по инсталляции свеженького сервера и следить чтобы у них были одинаковые системные id (просто создавать их в одинаковом порядке).
Либо не копировать базы между серверами методом backup-restore, а просто создавать объекты в базах по отдельности и настраивать ETL между серверами.
...
Рейтинг: 0 / 0
28.03.2018, 18:18
    #39622261
makondo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановленная из дампа процедура перестала видеть таблицы.
White Owl,

спасибо.

Я правильно понял, что до момента запуска такие процедуры найти нет возможности?
...
Рейтинг: 0 / 0
28.03.2018, 22:19
    #39622371
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановленная из дампа процедура перестала видеть таблицы.
makondoWhite Owl,

спасибо.

Я правильно понял, что до момента запуска такие процедуры найти нет возможности?Можно.
Смотри на таблицу sysobjects. Поле loginame - это текстовое имя того кто создал объект, вот его и ищи в syslogins (suid).
...
Рейтинг: 0 / 0
29.03.2018, 13:04
    #39622626
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановленная из дампа процедура перестала видеть таблицы.
makondoASE 12.5, две одинаковые среды, отличаются именами.

Процедура обращается к таблицам в своей схеме.
На одной среде успешно выполняется, на другой выдает горсть ошибок о том, что таблиц не существует.
Запуск идет от одного пользователя, под которым они и создавались.


Ну ты написал в стиле "у меня неведомая фигня... Есть ли способ понять что-то ?"
Конечно, есть.
Надо поглядеть на схему твоих БД, на пользователей и на их права, на таблицы и
понять, где бредятина.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Восстановленная из дампа процедура перестала видеть таблицы. / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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