0

서비스로 실행되는 프로그램을 만들고 해당 시점의 특정 시점에 데이터베이스 백업 (pg_dump.exe 사용)을 만듭니다. 이 프로그램은 로컬 드라이브 및 매핑 된 네트워크 드라이브에 백업 파일을 쓸 수 있어야합니다.네트워크 서비스 계정이 로컬 경로를 허용하지 않습니다.

처음에는 네트워크 드라이브에 쓸 수 없었지만 서비스 계정을 관리자 계정으로 설정하여 문제를 해결했습니다. 그러나 내 상사는 사용자가 계정의 사용자 이름과 암호를 입력하지 않고 프로그램을 실행하기를 원합니다.

네트워크 서비스 계정 (암호가 필요하지 않고 항상 같은 이름 임)을 사용하여이 문제를 해결하려고했습니다. 이제 내 프로그램은 로컬 드라이브가 아닌 네트워크 드라이브에 기록합니다! 정규 C:\<directory name>\ 경로 구문과 \\<computer name>\C$\<directory name>\ 구문을 사용하고 어떤 것도 작동하지 않는 \\<ip address>\C$\<directory name>\을 사용해 보았습니다.

네트워크 서비스 계정으로 로컬 드라이브에 액세스 할 수있는 방법이 있습니까?

답변

0

관리자 그룹에 추가 할 설치시 새 사용자를 만들어서이 문제를 해결했습니다. 이를 통해 서비스가 설정 중에 암호/사용자 이름 정보가 필요없이 로컬 및 네트워크 드라이브에 쓸 수 있습니다.

1

해당 파일/디렉토리에 대한 액세스 권한을 계정에 부여하면 정상적으로 작동합니다. 로컬 파일에 액세스하려면 파일 및 디렉토리에 대한 ACL을 조정해야합니다. 네트워크 공유를 통해 액세스하려면 파일 공유 ACL 및 네트워크 공유에 대한 사용 권한을 변경해야합니다.

File ACL은 Exploler UI 또는 명령 줄에서 표준 icacls.exe을 사용하여 수정할 수 있습니다. 예 : 이 명령 줄은 네트워크 서비스에 대한 읽기, 쓰기 및 삭제 권한 아래의 디렉토리와 모든 파일을 제공합니다.

icacls c:\MyDirectory /T /grant "NT AUTHORITY\Network Service":(R,W,D) 

파일 공유 권한은 fsmgmt.msc 도구를 사용하여, UI에서 수정하기가 더 쉽습니다.

최소 적용해야하는 권한 집합을 알아야합니다. 보안에 대해 전혀 염려하지 않으면 전체 권한을 부여 할 수 있지만 거의 항상 과도한 공격이며 어떤 이유로 든 서비스가 손상 될 경우 더 많은 것을 열어줍니다.

+0

답장을 보내 주셔서 감사합니다. 이 솔루션은 작동하는 것처럼 보이지만 이미 다른 방향으로갔습니다. 네트워크 서비스 사용자를 사용하는 대신 내 사용자를 만들어 관리자 사용자 그룹에 추가하므로 사용자에게 암호/사용자 이름 정보를 묻지 않아도됩니다. – user2437443