SQL Server Management Studio (2005 이상)에서 다른 Windows 사용자 연결


333

SQL Server Management Studio 2005 이상에서 Windows 인증 사용자를 변경하는 방법이 있습니까 (SQL Server 2000 및 이전 버전에서와 같이)?

일반적인 연결 속성 대화 상자입니다 (Windows 인증 선택시 회색으로 표시된 UID / PWD 참고).

대화

참고-한 가지 해결 방법은 사용하는 runas것이지만 여러 서버 (및 여러 도메인)에서 여러 Windows 계정으로 작업 할 수있는 솔루션을 찾고 있습니다.


2
내가 아는 한 Run As ...가 이것을 달성하는 유일한 방법입니다. Run As ...를 사용할 수없고 각 사용자마다 다른 관리 스튜디오 세션을 시작하는 이유는 무엇입니까?
DCNYAM

4
RunAs는 동일한 도메인 및 / 또는 포리스트에있는 경우에만 작동합니다. 컨설턴트 인 경우 같은 도메인 및 / 또는 포리스트에 있지 않으므로이 기능을 사용하는 것이 좋습니다.
Eric

느낄 수있어, 에릭 때로는 가상 머신이 클라이언트의 도메인 / 포리스트의 일부가되어 좀 더 원활하게 작업 할 수 있도록 클라이언트와 함께 VM을 사용하지만 여러 도메인을 적극적으로 사용하는 경우에는 지루할 수 있습니다.
Ed Altorfer

6
여러 도메인이 하나의 사용 사례입니다. 다른 하나는 자신의 서비스 계정으로 로그인하고 SQL 연결, 권한 등을 확인하려는 개발자 인 Windows 서비스입니다. 운이 좋지 않은 것 같습니다. . . 적어도 우리는 runas를 가지고 있습니다.
Matt P.

답변:


418

SSMS의 단일 인스턴스에서 여러 사용자로 여러 서버에 연결할 수있는 방법은 없지만 원하는 RUNAS 구문은 다음과 같습니다.

runas /netonly /user:domain\username program.exe

"/ netonly"스위치를 사용하면 트러스트가 설정되어 있지 않아도 현재 구성원이 아닌 도메인에서 원격 자격 증명을 사용하여 로그인 할 수 있습니다. 그것은 단지 runas에게 자격 증명이 원격 리소스에 액세스하는 데 사용될 것이라고 알려줍니다. 응용 프로그램은 현재 로그인 한 사용자로서 로컬 컴퓨터와 상호 작용하고 자격 증명을 부여한 사용자로서 원격 컴퓨터와 상호 작용합니다.

여전히 여러 SSMS 인스턴스를 실행해야하지만 최소한 각기 다른 Windows 사용자로 연결할 수 있습니다.


예를 들면 다음과 같습니다. runas /netonly /user:domain\username ssms.exe


28
동일한 도메인이지만 다른 사용자를 원하면 / netonly 스위치를 삭제하십시오.
jimconstable

5
netonly 스위치에 관한 것은 절대적으로 황금입니다. 너무 많은 시나리오가 필요했습니다. 감사.
Jivko Petiov 2016 년

7
현재 가장 편리한 방법은 +1입니다. MS는 MSTSC / 원격 데스크톱 스타일 로그인 대화 상자를 SSMS에 접어 연결 당 구성 할 수 없다는 것은 여전히 ​​절충안입니다.
Paul Smith

7
와! netonly! 환상적인. 일단 실행되면 Windows 인증을 사용하여 원격 서버에 연결하려고하면 netonly 사용자가 아닌 로컬 사용자가 표시됩니다. 연결될 때 마법처럼 보이게합니다 ...
TTT

2
user175017의 아래 답변은 저에게 효과적이며 훨씬 쉬워 보이며 하나의 SSMS 세션에서 서버 별 Windows 연결을 허용합니다. 간단히 말해서 Win 7에서 "Credential Manager"를 실행하고 <servername> : 1433에 대한 Windows 자격 증명을 추가하면됩니다. 여기서 <servername>은 정규화 된 SQL Server 컴퓨터입니다 (예 : MyServer.MyCompany.Com).
David Korn

161

shiftSQL Server Mangement studion 아이콘을 길게 클릭하십시오. 다른 Windows 계정 사용자로 실행할 수 있습니다.


31
불행히도 계정이 다른 도메인 / 네트워크에있는 경우 작동하지 않습니다. 잘못된 사용자 이름 / 암호를 반환합니다. 위 명령은 다른 네트워크에있는 계정에 관계없이 작동합니다.
Jerad Rose

1
이것은 나를 위해 일했다! 제 경우에는 같은 도메인에 두 개의 계정이 있습니다.
Tathagata

Windows 10에서 작동합니다.
wrkwrk

다른 도메인에서 저를 위해 일했습니다.
Tahir Hassan

1
다른 Windows 계정 사용자 및 관리자 권한으로 실행하는 방법은 무엇입니까?
Kiquenet

116

내가 찾은 또 다른 방법은 "시작"> "제어판"> "저장된 사용자 이름 및 암호"(Windows 7의 관리 도구> 자격 증명 관리자)로 이동하여 "runas"명령과 함께 사용할 도메인 계정을 추가하는 것입니다. .

그런 다음 SQL Management Studio 2005에서 "Windows 인증"을 선택하고 연결하려는 서버를 입력하십시오 (회색으로 표시되는 사용자가 여전히 로컬 사용자 임에도 불구하고).

이유를 묻지 마십시오! :)

편집 : 자격 증명 관리자에서 서버 이름 뒤에 ": 1433"을 포함 시키십시오. 그렇지 않으면 도메인을 신뢰하지 않아 연결되지 않을 수 있습니다.


10
솔직히이 답변은 표시되어야합니다. runas 솔루션은 저에게 효과가 없었으며 smss가 콘솔에서 시작하는 것을 좋아하지 않아 두통을 일으켰습니다. 이는 smss를 호출 할 때 발생합니다. 그리고 그 일이 멈추더라도 여전히 작동하지 않습니다. 그러나 자격 증명 관리자> Windows 자격 증명 추가가 작동했습니다. 서버 이름, DOMAIN \ user username 및 비밀번호를 입력하십시오. 그가 말한 것처럼 여전히 로컬 사용자를 보여 주지만 어쨌든 연결됩니다.
Brian Arsuaga

16
네트워크 주소로 sqlserver.domain.com:1433을 사용해야 할 수도 있습니다. 참조 stackoverflow.com/questions/6944933
그렉 브레이

7
실제로 이것은 저에게 효과적이며 훨씬 쉬워 보이며 하나의 SSMS 세션에서 서버 별 Windows 연결을 허용합니다. 방금 "Credential Manager"를 실행하고 <servername> : 1433에 대한 Windows 자격 증명을 추가했습니다. 여기서 <servername>은 정규화 된 SQL Server 컴퓨터입니다 (예 : MyServer.MyCompany.Com).
David Korn

1
runas방법은 저에게 효과적이지 않지만 이것은 효과가 없었습니다. 처음에 Credential Manager에서 포트 정보없이 시도했지만 여전히 로그인 할 수 없었습니다. Credential Manager에서 포트 정보를 추가하면 매력처럼 작동했습니다. 정말 감사합니다!
René

1
이것은 가장 우아한 솔루션 일 수 있습니다. 도메인의 일부가 아닌 SQL 2012 독립형 인스턴스에 연결하기 위해 Windows 8.1에서 작동합니다. <서버 이름> : 1433
Tim Lehner

10

runas /netonly /user:domain\username program.exe명령은 나를 위해 일Windows 10

  • 배치 파일로 저장
  • 관리자로 실행

일반 사용자로 명령 배치를 실행할 때 이전 주석에서 일부 사용자가 언급 한 잘못된 비밀번호 문제가 발생했습니다.


이것은 나에게도 효과적이며 도메인 간 신뢰 관계는 없습니다. SSMS를 시작하고 다른 도메인 계정을 사용하여 SQL 서버에 연결할 수있었습니다 (UI에서는 로컬 도메인 계정을 사용한다고 말하지만
Neil

10

이 답변 중 어느 것도 내가 필요한 것을 수행하지 못했습니다. 로컬 컴퓨터에 로그인하지 않은 다른 도메인 계정을 사용하여 원격 서버에 로그인하면 VPN의 클라이언트 도메인입니다. 나는 그들의 도메인에 있고 싶지 않습니다!

대신 서버에 연결 대화 상자에서 "Windows 인증"을 선택하고 옵션 단추를 클릭 한 다음 추가 연결 매개 변수 탭에서

user id=domain\user;password=password

SSMS는 기억 나지 않지만 해당 계정과 연결됩니다.


이것은 SQL Server 관리 Studio에서 저를 위해 2017 일
natbob1

6

약간의 powershell 마술이 트릭을 수행합니다.

cmdkey /add:"SERVER:1433" /user:"DOMAIN\USERNAME" /pass:"PASSWORD"

그런 다음 Windows 인증을 선택하십시오.


1

Windows 10의 경우 : Sql Management Studio 아이콘 또는 메뉴에서 바로 가기로 이동하십시오. 마우스 오른쪽 단추를 클릭하고 파일 위치 열기를 선택하십시오.

여기에 이미지 설명을 입력하십시오

Shift 키를 누른 상태에서 폴더에있는 바로 가기 또는 ssms.exe 파일을 마우스 오른쪽 단추로 클릭하십시오. Shift 키를 누르면 "다른 사용자로 실행"이라는 추가 옵션이 제공됩니다.

여기에 이미지 설명을 입력하십시오

로그인 상자가 나타나고 세션을 실행할 자격 증명을 입력 할 수 있습니다.


0

이러한 종류의 시나리오를 배포하려는 사람이 많은 곳이 있지만 통합 인증의 작동 방식으로 인해 불가능합니다.

gbn에서 언급했듯이 통합 인증은 Windows ID에 해당하는 특수 토큰을 사용합니다. 다른 Windows 사용자로서 활동을 효과적으로 수행 할 수있는 "가장"(아마 실행 ... 명령에 의해 사용됨)이라는 코딩 방법이 있지만 실제로 다른 사용자로 임의로 행동 할 수있는 방법은 없습니다 (a la Windows 응용 프로그램의 경우).

여러 도메인에서 여러 서버를 관리해야하는 경우 다음 중 하나를 고려할 수 있습니다.

  1. 계정이 트러스 팅 도메인의 컴퓨터에 액세스 할 수 있도록 도메인 간 도메인 트러스트 설정
  2. 그런 방식으로 로그인 할 수 있도록 관리해야하는 모든 서버에서 SQL 사용자 (혼합 인증 사용)를 구성하십시오. 분명히 어떤 시점에서 모든 암호를 변경해야하는 경우 보안 문제가 발생하여 유지 관리의 악몽이 발생할 수 있습니다.

잘만되면 이것이 도움이된다!


불가능한 것은 아닙니다 ... 위의 runas / netonly / user : domain \ username program.exe는 정상적으로 작동합니다.
Chris Pierce

-3

원하는 것을 달성하는 유일한 방법은 바로 가기를 마우스 오른쪽 버튼으로 클릭하고 'Run-as'기능을 사용하여 여러 SSMS 인스턴스를 여는 것입니다.


3
유일한 방법은? 전혀.
Michel de Ruiter
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.