Назад | Перейти на главную страницу

Методы синхронизации логинов и паролей между двумя серверами данных в Sybase ASE

Sybase ASE 12.5.4

Судя по названию, я ищу способ, при котором создание логина или изменение пароля на сервере данных A также происходит на сервере данных B, и наоборот.

Можно ли заменить master..syslogins на B с proxy_table, указывающим на A? Я пробовал это, но не смог сбросить локальные системные логины (в любом случае, вероятно, вызвал бы хаос).

Есть другие предложения?

Один из способов сохранить синхронизацию syslogins - это просто использовать bcp между серверами данных, но вам придется делать это каждый раз при смене пароля. Может быть достаточно регулярно запускать его из cron.

Если вы настроите аутентификация через сервер LDAP тогда это позволит синхронизировать пароли, но я не использовал эту функцию, поэтому я не уверен, как именно обрабатываются изменения пароля.

BCP работает, вы должны установить для параметра конфигурации "разрешить обновления системных таблиц" значение 1. Также безопаснее оставить в покое первые несколько suid (sa, probe и т. Д.).

Более продвинутый метод - переписать процедуры sp_addlogin и sp_password, чтобы выполнить эту синхронизацию за вас. Но это системные процедуры, поэтому вам может быть лучше написать оболочку и вызвать ее, она, в свою очередь, может вызывать системные sprocs на каждом сервере. Думаю, это зависит от того, как ваши пользователи меняют пароль.

Это давняя проблема репликации sybase (особенно горячего резервирования), поэтому существует множество вариантов.

Если это решение для горячего резервирования, вам необходимо убедиться, что suid для конкретного имени входа всегда одинаков на всех серверах, поскольку это единственная ссылка на фактическую учетную запись пользователя в базе данных. Права доступа к базе данных, в свою очередь, связаны с учетной записью пользователя. Так что путайте suids, и у вас могут быть разные разрешения на серверах A и B.

Вот шаги. 1) Извлеките данные B ... master..syslogins. (Более безопасная сторона). 2) BCP из A..master..syslogins с сервера A (кроме sa login). 3) Удалите данные B..master..syslogins (кроме входа sa) и BCp в данных, включив опцию разрешения обновлений. Как только BCP будет готов, вы можете отключить его. Он будет работать, если вы можете написать и протестировать сценарий.

Спасибо, Навин.