database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 4215 게시물 읽기
No. 4215
xp_cmdshell에서 bcp로 파일출력
작성자
김정훈(miraclekim)
작성일
2008-05-19 18:18
조회수
4,739

안녕하세요


xp_cmdshell 을 이용해서 bcp 로 파일출력을 하려고 하는데 네트워크상의 파일서버로 출력시 억세스 거부라고 뜹니다.


프로시저를 사용해서 하루에 한번 돌리는건데 로컬에서는 아무 문제없는데 네크워크상 출력을 할려면 억세스 거부가 뜨네요


고수님들의 조언을 부탁합니다.

이 글에 대한 댓글이 총 1건 있습니다.

먼저 NT서비스가 돌아가는 환경을 이해할 필요가 있습니다.


sql 서버가 로컬서비스로 돌아갈때는 로컬시스템 이라는 로컬에서 모든 권한을 가지고 있게 동작을 합니다. 그래서 xp_cmdshell은 sql서버가 실행시키는것이기 때문에 로컬에서는 당연히 bcp가 됩니다.


단 이게 네트웍으로 나갔을때는 문제가 발생합니다. 로컬시스템이라는 권한은 로컬에서만 통하기 때문에 원격 컴퓨터에는 아무 권한이 없습니다.


이 권한문제를 해결하기 위해서는 NT서비스(관리도구/서비스에서 확인가능) 를 열어서 Mssql server 시작계정을 도메인계정(Active Directory)으로 설정을 해주세요. 단 이 도메인 계정은 로컬과 원격컴퓨터에서 모든권한을 가지게 설정을 해주시고요.(원래는 원격컴퓨터에서는 쓰기만 가능하도록 해야 하지만 처음 테스트하기 위해 모든권한 설정 권장) 


그러나 AD계정을 설정한다는 것은 추가적으로 관리포인트가 하나 더 늘어난다는 점 잊지 마시구요.


만약 AD도메인을 운용하지 않는 환경이라면 꽁수가 있습니다.

로컬컴퓨터와 원격컴퓨터에서 동일한 ID/password의 계정을 만드시고 adminstrators 그룹에 넣어주세요. 그리고 로컬컴퓨터에서 mssql서버의 시작계정을 지금 만든 계정으로 지정해주세요.. 그리고 sql server 재시작하고 xp_cmdshell을 실행하시면 잘 될것입니다.


지금까지 설명을 드렸지만 xp_cmdshell을 직접 실행시키는것은 보안상에 위험이 발생할수 있습니다. 그래서 bcp를 할수 있는 다른방법을 마련해 보는것이 좋을듯싶네요..


도움이 됐으면 좋겠네요.. ^^

생추리님이 2008-05-27 18:27에 작성한 댓글입니다.
이 댓글은 2008-05-28 10:32에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
4218update 질문이요. 도와주세요~~ [2]
김형일
2008-05-22
4236
4217Agent 작업 실행 및 에러처리
고형석
2008-05-22
4081
4216링크드서버 view로 테이블생성 문제...
유보현
2008-05-21
4240
4215xp_cmdshell에서 bcp로 파일출력 [1]
김정훈
2008-05-19
4739
4213논리적파일이름을 변경할 수 있을까요 [1]
김영우
2008-05-19
3963
4212각각데이터베이스에서 인덱스를 복사할려면?
왕초보
2008-05-18
3788
4211특정 IP대역에 대한 검색 쿼리문을 짜고 싶습니다 도와주세요 ㅠㅠ
호남
2008-05-16
5058
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다