나는 해봤 Tasks
> Generate Scripts...
과 세트 고급 스크립팅 옵션에서 '스크립트 로그인',하지만 출력이 얻을 :
/* For security reasons the login is created disabled and with a random password. */
2008R2 인스턴스에서 2014 인스턴스로 로그인을 전송하는 다른 방법이나 비밀번호로 이러한 로그인을 스크립팅하는 간단한 방법이 있습니까?
나는 해봤 Tasks
> Generate Scripts...
과 세트 고급 스크립팅 옵션에서 '스크립트 로그인',하지만 출력이 얻을 :
/* For security reasons the login is created disabled and with a random password. */
2008R2 인스턴스에서 2014 인스턴스로 로그인을 전송하는 다른 방법이나 비밀번호로 이러한 로그인을 스크립팅하는 간단한 방법이 있습니까?
답변:
로그인을 전송하려면 sp_help_revlogin 스크립트 및 절차 를 사용해야합니다 . 이를 통해 로그인을 전송하고 인스턴스 간 암호를 유지할 수 있습니다.
sp_help_revlogin
했지만 SQL 2014 SP1 CU1 (12.0.4416)에서 작동하지 않습니다. 이 기술 자료 문서 는 SQL Server 2012까지 작동한다고 언급합니다.
모든 사람들이 이것에 대해 배울 때까지 기다릴 수 없습니다.
https://blog.netnerds.net/2016/06/its-2016-why-is-sp_help_revlogin-a-thing/
간단히 말해 : dbatools Powershell 스크립트를 설치하십시오.
이제 SQL 사용자, 비밀번호, 권한 등을 복사 할 수없는 훌륭한 명령 세트가 있습니다. 데이터베이스, 작업, 심지어 전체 인스턴스를 복사하기위한 철저한 명령 세트
사용법 예 :
Copy-DbaLogin -Source sqlsvr2000 -Destination newsql2016
또는:
Export-DbaLogin -SqlServer sql2005 -FileName C:\temp\sql2005-logins.sql
건배!
앞에서 설명한대로 SQL 2014의 sp_help_revlogin 스크립트 및 절차를 계속 사용할 수 있습니다 ( SQL Server 인스턴스간에 로그인 및 암호를 전송하는 방법 ). 그러나 수동 수정이 필요합니다 (해시 값 변수의 길이 확대).
예, 다양한 모듈을 사용하여 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.#>
도움이 필요하면 알려주십시오.