Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений / 18 сообщений из 18, страница 1 из 1
30.06.2005, 14:32
    #33142820
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений
Задача: находясь рядом с удаленной базой сделать несколько вставок в одну из ее таблиц, участвующую в репликации, таким образом, чтобы эта вставка не передалась в консолидированную. При этом не допускается останка репликации. Как это лучше сделать?
Смотрю в сторону PASSTHROUGH ONLY FOR user_id, но смущает следующее:

BOL
If the ONLY keyword is used to start passthrough mode, the statements are not executed at the server; they are sent to recipients only.


Т.е. он предназначен для отправки изменения в другую базу без применения к локальной? А мне нужно наоборот.
...
Рейтинг: 0 / 0
30.06.2005, 15:23
    #33143016
Рыжий Кот
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений
LOAD TABLE не пойдет?

BOLInserts are not recorded in the log file. Thus, the inserted rows may not be recovered in the event of a crash. In addition, the LOAD TABLE statement should never be used in a database involved in SQL Remote replication or databases used as MobiLink clients because these technologies replicated changes through analysis of the log file.


...
Рейтинг: 0 / 0
30.06.2005, 15:51
    #33143130
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений
Рыжий Кот пишет:
> LOAD TABLE не пойдет?

страшновато. надо проверять.
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
30.06.2005, 15:53
    #33143140
Рыжий Кот
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений
off: для чего это все понадобилось? репликация слегка разъехалась?
...
Рейтинг: 0 / 0
30.06.2005, 16:13
    #33143232
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений
Рыжий Кот пишет:
> off: для чего это все понадобилось? репликация слегка разъехалась?

Именно. Воткнул новую таблицу в подписку (пустую). А точнее даже две -
шапка и строчки документа типа накладной. Но в удаленной базе забыл
убрать с нее FK на таблицу, которая хоть и присутствует, но не
реплицируется и вообще пустая. Ладно, проблему решил с консолидированной
базы, удалив и вставив по новой введенные данные.
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
30.06.2005, 16:22
    #33143268
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений
> Именно. Воткнул новую таблицу в подписку (пустую).

Имелась в виду пустая таблица, а подписка была очень даже не пустая.

Кстати, еще вопрос на засыпку. Если отправить изменения через
PASSTHROUGH ONLY FOR user_id, то сработают ли в получившей базе
триггера, обернутые в IF CURRENT REMOTE USER IS NULL ... END IF?
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
30.06.2005, 16:51
    #33143388
Рыжий Кот
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений
не уверен, но наверное нет,
поскольку все изменения все равно применяются от имени remote user-а (который remote dba).
Хотя если в dbremote прописать uid равным dba, то может и да... не знаю :)
...
Рейтинг: 0 / 0
30.06.2005, 20:35
    #33143880
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений
Александр Гoлдун
> LOAD TABLE не пойдет?
страшновато. надо проверять.

А чего страшно то? LOAD TABLE официально не реплицируемая операция. В документации это упомянуто.
...
Рейтинг: 0 / 0
30.06.2005, 20:36
    #33143881
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений
Рыжий Кот пишет:
> поскольку все изменения все равно применяются от имени remote user-а
> (который remote dba).
> Хотя если в dbremote прописать uid равным dba, то может и да... не знаю :)

Кстати, вот еще вопрос по ходу (надоело самому отвечать, я тоже не все
знаю ;)

Я в строке подключения dbremote везде dba использую. Чем это плохо? Оно
и в примерах в BOL везде так. В качестве паблишеров и удаленных юзеров,
естественно, используются отдельные пользователи.
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
30.06.2005, 20:42
    #33143885
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений
Александр ГoлдунЯ в строке подключения dbremote везде dba использую. Чем это плохо? Оно и в примерах в BOL везде так.
Плохо тем, что юзер может залезть в скрипт/ярлык/чего-там еще запуска dbremote и подсмотреть пароль DBA :)
...
Рейтинг: 0 / 0
30.06.2005, 20:49
    #33143890
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений
White Owl пишет:

>> Я в строке подключения dbremote везде dba использую. Чем это плохо? Оно
>> и в примерах в BOL везде так.

> Плохо тем, что юзер может залезть в скрипт/ярлык/чего-там еще запуска
> dbremote и подсмотреть пароль DBA :)

И все? Больше ничем? На хитрых юзеров есть нормальные сисадмины. А если
фирма без сисадмина и юзеры имеют доступ ко всем скриптам, то dbfhide
заметно усложнит задачу получения пароля. Хоть и не сильная
криптография, но что-то я не слышал про распространенные утилиты
расшифровки.
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
30.06.2005, 20:57
    #33143894
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений
Вообще-то, dbremote должна иметь доступ до некоторых системных функций и таблиц. Простой юзер dbremote запустить не сможет.
Но можно поиграться с grant и сделать специального юзера для запуска репликации... А можно сделать отдельного юзера, и дать ему dba права (с теми же проблемами секьюрити что и при прямом использовании dba).
...
Рейтинг: 0 / 0
30.06.2005, 22:59
    #33143980
Рыжий Кот
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений
нынче пользователь пошел шибко грамотный, поэтому предпочитаю использовать только логин/пароль, основанный на атрибутах remote user-а.

...
Рейтинг: 0 / 0
01.07.2005, 12:10
    #33144695
PaulJB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений
Вобще-то с помощью PASSTHROUGH ONLY FOR user_id данные не передашь. Она предназначена только для внесения изменения в структуру базы, а не в данные. Система тебя обругает если ты между PASSTHROUGH ONLY FOR user_id и PASSTHROUGH STOP поставишь комманду типа INSERT,UPDATE,DELETE.
А вот FK в удаленной снести не трогая консолидированную PASSTHROUGH ONLY FOR ... PASSTHROUGH STOP очень даже и подходит.

А на счет юзера для агента - создай в базе полностью бесправного юзера, установи ему аттрибут RemoteDBA и пусть после этого хитрые юзера и админы подсматривают его пароль. :) Они смогут на него разве что полюбоваться, а когда DBRemote будет входить под его именем, то он на время сеанса его работы получит права ДБА.
...
Рейтинг: 0 / 0
01.07.2005, 12:20
    #33144733
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений
PaulJB пишет:
> Вобще-то с помощью PASSTHROUGH ONLY FOR user_id данные не передашь. Она
> предназначена только для внесения изменения в структуру базы, а не в
> данные. Система тебя обругает если ты между PASSTHROUGH ONLY FOR user_id
> и PASSTHROUGH STOP поставишь комманду типа INSERT,UPDATE,DELETE.

С чего бы это вдруг? В PASSTHROUGH режиме просто без изменений
передаются ВСЕ SQL запросы. По крайней мере я таким образом без проблем
передавал CALL ProcedureName(....)

> А на счет юзера для агента - создай в базе полностью бесправного юзера,
> установи ему аттрибут RemoteDBA и пусть после этого хитрые юзера и
> админы подсматривают его пароль. :)

Да у меня то проблемы подсматривания паролей нет. Конфигурационные файлы
шифруются как средствами ASA, так и ОС. Но за идею спасибо, можеть
пригодиться. Как-нибудь на досуге проверю.
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
01.07.2005, 12:36
    #33144795
PaulJB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений
2 Александр Гoлдун
>С чего бы это вдруг? В PASSTHROUGH режиме просто без изменений
>передаются ВСЕ SQL запросы. По крайней мере я таким образом без проблем
>передавал CALL ProcedureName(....)

Хм ... странно ... У меня АСА 9.0.2.3124 ругалась: (ща точно не помню) мол вы не можете использовать комманду UPDATE ... (у меня в скрипте только она стояла) между PASSTHROUGH FOR ... PASSTHROUGH STOP. Может CALL Procedure и можно. Спасибо - проверим.

Про юзера: я забыл указать, что у него надо оставить только RemoteDBA, а DBA и Resource надо убрать, ибо сюрприз не получится. :)
...
Рейтинг: 0 / 0
01.07.2005, 12:44
    #33144825
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений
PaulJB пишет:

> Про юзера: я забыл указать, что у него надо оставить только RemoteDBA, а
> DBA и Resource надо убрать, ибо сюрприз не получится. :)

Прочитал про Remote DBA. Но это не сильно поможет. В файле конфига для
dbremote кроме логина и пароля есть еще ключик -ek с ключом шифрования
базы. А это почувствительнее будет в плане информационной безопасности.
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
01.07.2005, 13:06
    #33144897
PaulJB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений
Александр ГoлдунПрочитал про Remote DBA. Но это не сильно поможет. В файле конфига для
dbremote кроме логина и пароля есть еще ключик -ek с ключом шифрования
базы. А это почувствительнее будет в плане информационной безопасности
ИМХО мы наверно говорим о разных вещах ... :)
Я имел в виду то, что если вы запускаете агента ВАТ-файлом, то в этом файле можно прочитать имя юзера и его пароль, а затем попытаться подключиться с его помощью к базе (например централом) с вытекающими из этого последствиями. В любом случае ключ шифрования (-ek) вы тоже будете вынуждены там указать. Указывая в ВАТ-файле (да даже и в теле программ) юзера с правами ДБА вы довольно серьезно рискуете.
А вычитать аттрибуты юзеров из файла базы - нууу это надо постараться. :)
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA 8. Выполнение нереплицируемых ЛОКАЛЬНЫХ изменений / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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