2017-10-31 7 views
1

SQL 데이터베이스를 C : \에서 Server로 옮길 때 약간 익숙합니다. Excel, Access 및 CSV 파일에서 데이터를 가져 오는 데 OpenrowsetOpendatasource을 사용하지만 이제는 고정 된 드라이브 (C : \ 또는 E :)에서만 작동합니다. 나는 드라이브를 매핑 xp_CmdShell를 사용하려고 여기에 내가 무엇을 얻을 오전 :xp_cmdshell 네트워크 오류가 발생했습니다.

첫째,이 실행 :

exec sp_configure 'xp_cmdshell', 1; 
reconfigure 

을 그런 다음이 :

exec xp_cmdshell 'net use G: \\172.16.0.32\Finance' 

얻은

The command completed successfully. NULL NULL

다음을 실행합니다.

,363,210
exec xp_cmdshell 'net use' 

얻을 :

New connections will be remembered. NULL NULL Status Local
Remote Network NULL ------------------------------------------------------------------------------- OK G: \172.16.0.32\Finance Microsoft Windows Network The command completed successfully. NULL NULL

하지만이를 실행하고 오류가 발생합니다 : 사람이 도움을 줄 수있는 경우

exec xp_cmdshell 'Dir G:' 

An unexpected network error occurred. NULL

가 큰 것!

업데이트 : 모든 내 OPENROWSET 쿼리 후

exec xp_cmdshell 'Dir G:' 

Volume in drive G is FileSharing1 Volume Serial Number is 20E1-DEF3 NULL Directory of G:\ NULL 06/22/2017 08:56 AM . 06/22/2017 08:56 AM .. 09/20/2017 09:37 AM
IMA Utilization Reports 03/09/2017 06:36 PM
Microsotf SQL Server 2014 02/15/2017 06:22 PM
Wellcare-Apixio Project 0 File(s) 0 bytes 5 Dir(s) 722,791,567,360 bytes free NULL

: 는 나는이있어 드라이브를 삭제하고 다시 매핑 서버를 재부팅 한 후 서비스

exec xp_cmdshell 'net use G: /delete' exec xp_cmdshell 'net use G: \172.16.0.32\Finance'

를 다시 시작 여전히 작동하지 않습니다.

+0

명령 프롬프트에서 실행 해 보셨습니까? SQL Server가 작동하지 않는다면 SQL Server와 관련이 있다는 것을 배제 할 수 있습니다. – SQLChao

+0

좋은 아이디어. 시도하고 명령이 성공적으로 완료되었지만 서비스를 다시 시작했지만 여전히 작동하지 않았습니다. 다른 아이디어? – anonymous

+0

이제 오류는 입니다. 지정한 경로를 찾을 수 없습니다. – anonymous

답변

0

나는 당신이 llowing way :

SQL Server를 설치할 때 SQL Server 서비스가 실행되는 OS 계정을 구성하라는 메시지가 표시됩니다. 이 옵션이 변경되지 않은 경우 기본 계정으로 실행하고 있으며이 컨텍스트의 기본 계정의 평균은 최근 버전에서 조금 변경되었습니다.

마지막 버전 (2016/2017)에서는 서비스 이름 뒤에 이름이 지정된 특별한 서비스 계정으로 서비스가 실행됨을 의미합니다. 내 dev 컴퓨터에서 서비스 이름은 MSSQL $ DEV이므로 내 서비스는 "NT Service \ MSSQL $ DEV"계정에서 실행됩니다. 서비스가 2008 년 이상인 경우 sys.dm_server_services보기를 쿼리하여 문제의 계정을 찾을 수 있습니다. service_account라는 열이 있습니다.

이러한 서비스 계정의 경우는 일반적으로 네트워크에 액세스 할 수 없다는 것입니다. 따라서 SQL Server가 \\ 172.16.0.32 \ Finance 공유에 액세스하지 못할 수도 있습니다.

이제 xp_cmdshell에 대해 언급합니다. proxy account을 구성하여 xp_cmdshell을 작동하게 만들 수도 있지만 궁극적 인 목표는 OPENROWSET 등을 사용하여 원격 데이터에 액세스 할 수 있어야한다는 것입니다. 그리고 xp_cmdshell의 프록시 계정은 OPENROWSET에 적합하지 않습니다.

그럼 어떻게 할 수 있습니까?Windows 인증을 사용하여 SQL Server에 연결할 때 SQL Server는 일반적으로 파일 및 네트워크 공유와 같은 외부 리소스에 액세스 할 때 사용자를 가장하려고 시도합니다. Kerberos 위임 등을 구성해야하지만 확실히 작동합니다.

SQL 계정 (로그인/암호)을 사용하여 SQL Server에 연결하거나 위임이 작동하지 않으면 다른 옵션은 SQL Server가 실행되는 계정을 액세스 권한이있는 도메인 계정으로 변경합니다 필요한 공유 및 파일. 일반 도메인 계정 인 도메인 관리자는 사용하지 마십시오. 서비스 계정을 변경하는 가장 좋은 방법은 SQL Server Configuration Manager을 사용하는 것입니다.

는 도움이되기를 바랍니다.

+0

시간을 함께 보내 주셔서 감사합니다. 아프다. – anonymous

+0

도메인 계정은 어떤 계정입니까? – anonymous

+0

@anonymous 일반적으로 SQL 서버 서비스를 실행하기 위해 생성 된 도메인 계정입니다. 서비스가 현재 실행중인 서비스를 확인할 수 있습니다. – SQLChao