다른 도메인에서 Windows 인증으로 SQL Server에 연결


73

다른 도메인의 VPN에서 원격 SQL Server에 연결하려고합니다. SQL Server에 서버 이름을 입력하고 추가 연결 매개 변수를 선택하면 학교에서 필요한 추가 항목을 추가 할 수 있습니다.

Integrated Security=SSPI; User ID=DOMAIN\username; Password=Password

다음과 같은 오류가 발생합니다.

로그인 실패. 신뢰할 수없는 도메인에서 로그인하여 Windows 인증에 사용할 수 없습니다.


Windows Credential Manager 솔루션의 유일한 문제점은 지원하는 데이터베이스가 많으면 각 항목에 대한 항목을 가지고 도메인 암호를 업데이트 할 때마다 업데이트해야한다는 것입니다. 30-60 일마다있을 수있는 일부 사람들의 경우.
smehaffie 2016 년

게시물은 다소 관련이 있습니다.
RBT

@smehaffie 쉽게 스크립팅과 "cmdkey / add"명령을 사용하여 비밀번호를 유지할 수 있습니다. 또한 업데이트됩니다.
Mister Magoo

답변:


70

응용 프로그램의 연결 문자열에서 Windows 자격 증명을 일반 텍스트로 전달하려고합니다. 이것은 단순히 Windows 인증이 작동하는 방식이 아니며 목적을 크게 상실합니다.

또한 자신의 도메인에서 동일한 비밀번호로 동일한 사용자 이름을 만들 수 없으며 마술처럼 작동 할 것으로 기대합니다. 도메인 이름은 여전히 ​​유효성 검사의 일부입니다. 컴퓨터는 도메인의 일부이거나 컴퓨터가 속한 도메인은 학교 도메인에서 신뢰해야합니다.

내가 아는 유일한 해결 방법은 SSMS runas /netonly대한 것 입니다. 이 답변에 설명 된 트릭 입니다. 이렇게하면 Windows가 사용자가 아닌 사용자가 지정한 로그인으로 SSMS를 시작하게됩니다 (SSMS의 연결 속성 대화 상자에서 설정할 수있는 것은 아니며 명령 줄 또는 바로 가기에서 SSMS를 시작하는 방법입니다).

runas /netonly /user:domain\username "C:\path_to\ssms.exe"

원격 도메인에서 암호를 입력하라는 메시지가 표시됩니다. 그것은 것 보면 그것은 당신의 로컬 Windows 자격 증명을 사용하여처럼, 하지만하지 않습니다 .

Visual Studio에서도 작동 할 가능성이 있지만 실제로는 모르겠습니다.

옵션은 다음과 같습니다.

  • 대학에서 귀하의 컴퓨터를 도메인에 가입시킬 수 있도록하십시오
  • 대학에서 도메인을 신뢰할 수있는 도메인으로 추가하도록합니다
  • VPN 내부에 RDP를 수행하고 SQL Server 시스템에 직접 연결하는 도구를 사용할 수있는 점프 박스
  • SQL 인증 사용
  • runas /netonlyVisual Studio로 트릭을 시험해보십시오.
  • runas /netonlySSMS로 트릭을 사용하십시오.

runas것은 않습니다 비주얼 스튜디오와 함께 작동합니다.
Daniel Hutmacher 2016 년

명령 프롬프트없이이 동작을 흉내내는 방법이 있습니까?
Gilles Lesire에서

1
@Gilles 배치 파일을 만들고 배치 파일을 두 번 클릭하거나 해당 문자열을 사용하여 바로 가기를 만들 수 있습니다.
Aaron Bertrand

102

다른 방법이 있습니다.이 방법보다 선호합니다 runas /netonly.

Windows 제어판에있는 자격 증명 관리자를 사용하여 Windows의 프로필에 자격 증명을 추가 할 수 있습니다.

  1. 자격 증명 관리자 열기
  2. "Windows 자격 증명 추가"를 클릭하십시오.
  3. 자격 증명을 저장하려는 SQL 인스턴스의 이름과 포트 번호로 "인터넷 또는 네트워크 주소"필드를 채 웁니다.

    예 : UniServer:1433(1433은 기본 포트입니다. 특히 명명 된 인스턴스에 연결하는 경우 다른 포트가 필요할 수 있습니다)

  4. "사용자 이름"을 채 웁니다 (예 : 도메인을 포함하는 것을 잊지 마십시오 MYDOMAIN\MYUSER)
  5. "비밀번호"채우기
  6. 확인을 클릭하십시오

서버 이름, 포트 및 로그인 세부 정보가 올바른 경우 이제 대부분의 클라이언트 도구, SSMS, Excel 등에서 Windows 인증을 사용할 수 있습니다. 그들은 모두 저장된 자격 증명을 사용합니다.

팁 : 자격 증명을 추가 할 때 서버에 FQN을 사용해야하는 경우가 있습니다. 예를 들어 UniServer.UniDomain.org:1433, 모두 네트워크 특정에 따라 다릅니다.

방법에 대한 간단한 데모는 다음과 같습니다. http://youtu.be/WiVBPsqB9b4

내 데스크톱의 VM에서 실행되는 SQL Server에 연결하려고 시도한 다음 실패한 후 필요한 자격 증명을 추가하고 다시 시도하는 화면입니다.

팁 : "cmdkey / add"명령을 사용하여 저장된 자격 증명을 만들고 업데이트하는 스크립트를 작성하십시오.


흥미 롭습니다! 클라이언트 시스템이 원격 시스템이 실제로 호출되는 것이 아니라 원격 시스템이 호출 된 것으로 생각하는 것에 의존하는 것 같습니다. IP 주소에 대한 호스트 파일에 발명 된 항목 ( "verysillytest.mwardm")을 입력했으며 (도메인 외부에서 액세스하는 사용자는 그렇게하지 않음) "verysillytest.mwardm"이라는 이름으로 자격 증명을 설정했습니다. 1433 ". 그런 다음 호스트 이름이나 IP 주소를 사용하여 Query Express라는 작은 앱에서 행복하게 연결할 수 있습니다.
mwardm

@mwardm 그렇기 때문에 ping 또는 nslookup을 사용하는 것이 좋습니다. 대 / 소문자를 포함하여 사용하는 데 필요한 이름을 정확하게 알려줄 것입니다.
Mister Magoo

아, "ping -a"는 아무 것도주지 않았고 도메인의 DNS 서버를 사용하지 않았기 때문에 nslookup이 (즉시) 작동하지 않았습니다. 걱정하지 마십시오. 실제로 IP 주소 (및 로그인)를 알고 내 이름을 구성 할 수있는 유연성을 선호합니다!
mwardm

1
굉장합니다! 그냥 궁금합니다-그렇게 작동해야합니까, 아니면 SQL Server 측면에서 버그 또는 디자인이 실패합니까? Microsoft 또는 Microsoft 직원은 도메인에 연결된 컴퓨터가 있어야하는 모든 곳에 광고합니다. 그렇지 않으면 도메인 자격 증명 만 수락하도록 설정된 SQL Server에 연결할 수있는 방법이 없습니다.
Dawid Ferenczy Rogožan

BTW이 답변은 실제 솔루션으로 보이고 다른 답변은 해결 방법과 비슷하기 때문에 수락 된 것으로 표시해야한다고 말하고 싶습니다.
Dawid Ferenczy Rogožan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.