SQLSERVERAGENT 가상 계정에 대한 파일 시스템 액세스 권한 부여


23

이 질문에NT Service\SQLSERVERAGENT 표시된 답변을 기반으로 Windows 계정 파일 시스템 액세스 권한을 부여하려고합니다 . 가상 서비스 계정이라고 생각하며 제어판-> 사용자 계정 영역에 표시되지 않습니다 .

이 서비스 계정에 파일 시스템에 대한 액세스 권한을 부여하려면 어떻게합니까? 특히 Windows 7에서.

나는 여러 가지 접근법을 읽었으며 아무도 나를위한 옵션이 아닌 것 같습니다. PowerShell 접근 방식을 시도했지만 AD 명령이 유효한 명령이 아닙니다. 심지어 그 명령에 필요한 Windows 패치를 다운로드하여 설치했습니다. 또한 SQL Server 구성 관리자 또는 Management Studio를 통해이 작업을 수행 할 수 있어야한다는 것을 읽었습니다. 그래도 이러한 권한을 조정할 위치를 알 수없는 것 같습니다.

다음 오류 메시지와 함께 SQL Server 에이전트 프로세스가 시작되지 않습니다.

Login failed for user 'NT SERVICE\SQLSERVERAGENT'.  
Reason: Failed to open the explicitly specified database 'msdb'.  
[CLIENT: <local machine>]

내 인터넷 검색을 기반으로이 계정의 권한과 관련이 있습니다.

데이터베이스가 손상되었는지 확실하지 않지만 데이터베이스가 정상 상태 임을 나타 냅니다. SQL Server 에이전트 로그인은 sysadminpublic그룹의 일부입니다 .

답변:


18

질문에 구체적으로 대답 하기 위해 기본 제공 SQL Server 에이전트 계정에 디스크 액세스 권한을 부여하는 방법은 다음과 같습니다. 그러나 내가 진짜 문제라고 생각하는 것에 대답하면서 읽으십시오.

1.> 드라이브를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 추가 버튼을 클릭하고 SQLSERVERAGENT 계정을 입력하십시오 (이 위치에서 텍스트 상자가 아닌 컴퓨터 이름에서 도메인이 선택되어 있는지 확인하십시오).

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

2.> 이름 확인 버튼을 클릭하여 계정이 유효한지 확인하십시오.

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

3.> 이제 필요한 파일 권한을 SQLSERVERAGENT 계정에 추가하십시오. 문제 해결을 위해 모든 권한을 부여한 다음 필요에 따라 나중에 다시 축소 할 수 있습니다.

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

, msdb 및 로그인에 대해 본 의견에 따라 SQL Server 구성 관리자를 사용하여 SQL 에이전트 사용자를 다시 추가해야 할 수도 있습니다. Configuration Manager는 Windows 서비스 애플릿을 사용하는 것보다 SQL Server를 더 많이 변경하므로 항상 모든 SQL 서비스를 변경하는 데 Configuration Manager를 사용해야합니다.

누군가 Windows 서비스 내에서 계정을 변경하여 시작시 서비스가 실패한 경우이 문제를 해결합니다. Configuration Manager 내에서 재설정해야합니다. 이렇게하면 Configuration Manager가 로컬 서비스 계정 (NT SERVICE \ SQLSERVERAGENT)에 대한 MSDB 데이터베이스를 관리하는 데 필요한 권한을 SQL Server에 추가 할 수 있지만 Windows 서비스 애플릿 내에서 계정을 변경하는 것은 아닙니다.

주의 사항 : 2000 이상의 SQL Server Express 버전에는 SQL 에이전트가 포함되어 있지 않습니다. 특정 측면이있을 수 있지만 Express 버전의 제품에서는 사용할 수 없습니다.

시작하려면 SQL Server 구성 관리자를 열고 SQL Server 서비스에서 SQL Server 에이전트 서비스를 두 번 클릭하십시오. 내장 계정 단일 선택 단추를 선택하고 로컬 서비스를 선택한 후 적용 단추를 클릭하십시오. 중요 :이 계정이 이미 선택되어있는 경우 다른 계정을 선택하고 적용 버튼을 클릭하십시오. 그런 다음 로컬 서비스로 다시 변경하고 적용 단추를 클릭하여 구성 관리자가 SQL 에이전트 서비스를 시작하기위한 올바른 MSDB 권한을 추가 할 수있게하십시오. 이제이 새로운 설정을 반영하도록 SQL Server 에이전트를 다시 시작하십시오.

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


1
내 SQL Server 에이전트 계정이 설정되어 NT Service\SQLAgent$MyInstanceName있고 폴더에 보안을 설정하려고 시도하고 이름 확인을 누르면 이름을 찾을 수 없으며 찾을 수 없습니다. 많은 좌절 끝에 추가를 눌러 권한을 추가 할 때 기본 '이 위치에서'가 로컬 컴퓨터로 설정되지 않았다는 것을 깨달았습니다. 로컬 컴퓨터 (트리의 최상위 노드)로 변경하면 NT Service\SQLAgent$MyInstanceName계정을 감지 하여 폴더 권한에 추가 할 수있었습니다.
NibblyPig

오류를 기록한 이벤트 로그에서 "MyInstanceName"을 얻었습니다.
Jasen

2

SQL Server 에이전트 로그인 계정을 LocalSystem으로 설정하여이 문제를 해결했습니다.


2
이 방법은 문제를 해결할 수있는 해결 방법이지만 일반적 으로이 답변에서
RDFozz

2

답답합니다. 이름을 입력하는 것만 큼 간단합니다. http://zarez.net/?p=3187

요약 : NT SERVICE \ MSSQLSERVER를 입력 한 다음 이름 확인을 클릭하지 않고 확인을 누르면 SQL 에이전트 계정에 대한 폴더 권한을 설정할 수 있습니다.


1
DBA SE에 오신 것을 환영합니다! 나는 투표하지 않았다. 귀하의 답변은 "링크 전용 답변"범주에 속합니다. 이 답은 원격 쪽이 내려 가면 이해할 수 없게됩니다. 귀하의 게시물을 검토 한 사람이 귀하에게 해당 내용을 말해야합니다. 따라서 : 1) 귀하의 답변은 실제로 (상단의 질문에 대한 답변) 2) 웹 페이지를 참조하여 게시물을 가장 중요한 내용을 복사하여 붙여 넣기하십시오. | 나는 당신에게 공감대를 주었지만 다른 검토 자들에게 설득력을 부여 할 것을 제안합니다.
peterh는

@peterh의 훌륭한 조언, 도움을 주셔서 감사합니다. V Jason, 귀하의 의견에 대한 요약을 귀하의 답변에 추가했습니다. 이것으로 충분하지만 다른 내용을 추가하고 싶은지 검토하고 싶을 수도 있습니다. 모든 개선에 감사드립니다!
잭 더글러스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.