Как перенести логины с 2008R2 на 2014 с паролями?

12

Я попытался Tasks> Generate Scripts...и установил «Вход в сценарий» в Дополнительные параметры сценариев, но я получаю это в выходных данных:

/* For security reasons the login is created disabled and with a random password. */

Существует ли простой способ создания сценариев для этих имен входа с паролями или другой способ переноса имен пользователей из экземпляра 2008R2 в экземпляр 2014 года?

Джек говорит, попробуйте topanswers.xyz
источник
4
sqlsoldier.com/wp/sqlserver/… (просто игнорируйте ссылки на зеркалирование - это работает для перемещения любых имен входа между любыми экземплярами).
Аарон Бертран
@ Аарон, на первый взгляд очень мило, спасибо.
Джек говорит, попробуйте topanswers.xyz
1
@Aaron Я закончил с использованием этого , который в основном то же самое. Спасибо, что указал мне правильное направление.
Джек говорит, попробуйте topanswers.xyz

Ответы:

8

Для переноса логинов вам необходимо использовать скрипт и процедуру sp_help_revlogin . Это позволит вам переносить логины и сохранять пароль от экземпляра к другому.

Майк Фал
источник
Я был на этой странице, но я, очевидно, не понимаю этого. Метод 3 говорит: «Создайте сценарий входа в систему с пустым паролем», так что, вероятно, не так ли?
Джек говорит, попробуйте topanswers.xyz
1
@JackDouglas Не уверен, что означает эта фраза, но вам просто нужно создать эти две хранимые процедуры на исходном сервере и, в конце, просто выполнить sp_help_revlogin, взять его вывод из SSMS и выполнить его на новом сервере. Ваши логины будут воссозданы с правильными pwds.
Marian
Я проверил это на SQL 2014, но не работает, этот же метод работает до SQL 2012. Также упоминается в support.microsoft.com/kb/91899
Иман Абиди
Я тестировал, sp_help_revloginно он не работает в SQL 2014 SP1 CU1 (12.0.4416). В этой статье базы
знаний
6

Я не могу ждать, чтобы все узнали об этом:

https://dbatools.io/

https://blog.netnerds.net/2016/06/its-2016-why-is-sp_help_revlogin-a-thing/

Вкратце: установите скрипты dbatools Powershell.

Теперь у вас есть замечательный набор команд, которые могут не только копировать пользователей SQL, пароли, разрешения и т. Д .; но также и исчерпывающий набор команд для копирования баз данных, заданий, даже целых экземпляров: D

Пример использования:

Copy-DbaLogin -Source sqlsvr2000 -Destination newsql2016

или:

Export-DbaLogin -SqlServer sql2005 -FileName C:\temp\sql2005-logins.sql

Ура!

CyDharttha
источник
1

вы все еще можете использовать сценарий sp_help_revlogin и процедуру для SQL 2014, как было сказано ранее ( как передавать имена входа и пароли между экземплярами SQL Server ). Но это требует ручных модификаций (увеличение длины переменных хеш-значения):

  • заменить 256 -> 512
  • заменить 514 -> 1028
  • заменить 1024 -> 2048
Miha
источник
0

Да, вы можете через Powershell, используя различные модули:

1- Использование DBATools: Open Powershell

<# Install-Module dbatools#> #only if not installed

<# Load the module#>

Import-module dbatools

export-dbalogin -SqlInstance ServerName f:\floginsdba.txt

2- Использование модуля SQLSERVER:

<# Install-Module sqlserver#> #only if not installed

<# Load the module#>

Import-module sqlserver

cd sqlserver:\serverA\default\logins   # replace the default with any named Inst

dir | %{$_.script()}                   

<# For security, it will create disabled  logins and hashed passwords for sql logins.#>

Дайте мне знать, если вам нужна помощь.

Каавах Саид
источник