2014-01-14 2 views
1

매주 SQL Server 에이전트에서 T-SQL 작업을 실행하도록 설정했습니다. SQL Server Management Studio에서 스크립트를 쿼리로 성공적으로 실행할 수 있지만 작업이 실행되면 다음과 같이 오류가 발생합니다.T-SQL Server 에이전트 작업이 실패합니다. "사용자에게이 작업을 수행 할 수있는 권한이 없습니다."

"사용자 : DOMAIN \ user로 실행. 사용자에게 에 대한 권한이 없습니다. [SQLSTATE 42000] (오류 15247). 단계가 실패했습니다. "

스크립트는 하나의 SQL 서버에서 테이블 데이터를 내보내고 다른 연결된 서버로 덤프합니다. 내가 수집 한 것에서 T-SQL은 프록시와 자격 증명을 사용하지 않고 스크립트를 수행 할 때 소유자 로그인을 사용합니다. 두 데이터베이스 모두에서 db_owner이고 sysadmin과 두 서버에서 serveradmin이 있는데 무엇이 누락 되었습니까?

+0

작업을 실행하도록 설정 한 사용자는 무엇입니까? 찾으려면 일반 -> 소유자가 필요합니다. 그것은 직업의 속성에있을 것입니다. – gh9

+0

소유자가 내 네트워크 로그인으로 설정되었습니다. – Chad

+0

위의 오류 때문에 보안상의 이유로 네트워크 로그인을 DOMAIN \ user로 바꿨습니다. – Chad

답변

3

SQL Server 에이전트 사용자 컨텍스트의 서버 끝 (데이터베이스 보안 아님)의 보안 요구 사항에 대해서는 this page을 참조하십시오. SQL Agent는 실행을 위해 Windows 계정이 할당 된 외부 프로세스이며 그 계정은 데이터베이스 인스턴스의 sysadmin 그룹에 있어야합니다.

+0

내가 그 단계를 따라하고, SQL 서버의 로컬 보안 정책 에 내 도메인 사용자 이름을 추가 - 프로세스 수준 토큰 (SeAssignPrimaryTokenPrivilege)를 교체 - - 트래버스는 (SeChangeNotifyPrivilege를) 확인 - 메모리를 조정하는 서비스 로그온 (SeServiceLogonRight) 로 로그온 프로세스에 대한 할당량 (SeIncreaseQuotaPrivilege) 하지만 여전히 동일한 오류가 있습니다. – Chad

+0

SQL Agent 프로세스가 내장 된 'NT AUTHORITY \ System'계정에 대해 실행되는 사용자 컨텍스트를 변경해보십시오. SQL Agent 프로세스는 사용자 계정에서 실행되지 않아야합니다 (원하는 경우 SQL Agent * 작업 *이이를 수행 할 수 있음). –

1

도움을 주신 모든 분들께서 저에게 해결책을 제안 해 주셨습니다. 그것이 작동하도록하려면 내 도메인 로그인이 작업의 소유자입니다. 고급 아래의 단계 속성에서 나는 Run as user를 공백으로 남겨두고 "EXEC AS LOGIN = 'DOMAIN \ user'"를 T-SQL 스크립트에 추가하면 효과가있었습니다!

0

차드의 솔루션은 나를 위해 일한 유일한 솔루션입니다 ... 이것은 오래된 질문이지만 영원히 그래서 그냥이 문제에 실행하는 경우 다른 사람에 그것을 강화하기 위해, 답을 찾기 위해 나에게 물었다 게다가. 작업 단계 속성 고급 탭에서 '사용자로 실행'상자를 비워두고 "EXEC AS LOGIN = 'DOMAIN \ user'"를 T-SQL 스크립트에 추가하십시오. 또한 유효한/필수 역할을 가진 로그인으로 'DOMAIN \ user'계정이 SQL Server 인스턴스에 추가되었는지 확인해야했습니다.

관련 문제