Как скопировать пользователей (LOGIN) из одной БД в другую?
Сейчас делаю запрос к таблице sys.sql_logins в исходной БД, получаю логины и делаю CREATE LOGIN в целевой БД
Минус, что не получается скопировать пароль. Приходиться задавать его в скрипте, потом менять.
Пробовал:
1) CREATE LOGIN name WITH PASSWORD = 'pass' HASHED - Azure ругается, что ключевое слово HASHED не поддерживается этой версией SQL.
2) UPDATE sys.sql_logins SET password_hash = 'hash' WHERE name = 'name' - Azure дает ошибку "Ad hoc updates to system catalogs are not allowed".
Может есть другие способы скопировать пользователей (LOGIN)?
Спасибо за ответ!
В статье описан перенос пользователй в MSSQl с помощью (в конечном счете) конструкции CREATE LOGIN [login] WITH PASSWORD = 0xhash HASHED
У меня не достаточно опыта в работе с MSSQL и Azure, поэтому я, наверное, не вижу своей ошибки.
Я делаю так (подключаюсь через SSMS, если это имеет значение):
SELECT 'HASH',password_hash FROM sys.sql_logins WHERE name='wis';
CREATE LOGIN test WITH PASSWORD = 0x0200E1D0A534F22BC6B09909DA62C47A94371A3FEAFD062AE092776CBC353A53C3BE408A0E2B8FA8CEB3061CBB134376A6ACCDF2CA8A8AD037BED4A41460A4D823EA8343B739 HASHED;
Сообщение 40517, уровень 16, состояние 1, строка 18
Keyword or statement option 'hashed' is not supported in this version of SQL Server.