SQL Server/SSRS 강좌

HTTP 엔드포인트 생성 오류 – 액세스 거부

SungWookKang 2015. 7. 16. 11:45
반응형

HTTP 엔드포인트 생성 오류 – 액세스 거부

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012, 2014

 

평소에 문제가 없던 SSRS 보고서가 실행되지 않는다. SSRS 서비스에 대한 보고서 관리자에서 페이지를 열었을 때 빈 페이지를 확인 할 수 있었다. 또한 HTTP 503 에러를 확인 할 수 있었다.

 

Reporting Services 로그를 보면 다음과 같이 보고서 서비스가 시작 될 때 발생한 예외를 확인 할 수 있었다.

rshost!rshost!1380!03/13/2015-14:52:11:: e ERROR: Failed to register url=http://+:80/ReportServer_RS2008R2/ for endpoint 2, error=5. <—5 = Access Denied
rshost!rshost!1380!03/13/2015-14:52:11:: w WARN: Endpoint 2 is enabled but no url is registered for vdir=/ReportServer_RS2008R2, pdir=C:\Program Files\Microsoft SQL Server\MSRS10_50.RS2008R2\Reporting Services\ReportServer.
servicecontroller!DefaultDomain!1a20!03/13/2015-14:52:11:: e ERROR: Error creating HTTP endpoint. System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
   at Microsoft.ReportingServices.HostingInterfaces.IRsUnmanagedCallback.CreateHttpEndpoint(RsAppDomainType application, String[] urlPrefixes, Int32 cPrefixes, String[] hosts, Int32 cHosts, Boolean wildCardPresent, String virtualDirectory, String filePath, Int32 authType, Int32 logonMethod, String authDomain, String authRealm, Boolean authPersist, Int32 extendedProtectionLevel, Int32 extendedProtectionScenario, Boolean enabled)
   at Microsoft.ReportingServices.Library.ServiceAppDomainController.SetWebConfiguration(RunningApplication rsApplication, Boolean enabled, String folder)

 

지금 일어난 문제는 서비스 계정이 외부 구성관리자에 의해 변경한 것이다. 아래 그림을 보면 현재 서비스는 rsservice@guyinacube.com 설정된 것을 알 수 있다.

 

관리자 명령프롬프트에서 다음 명령어를 실행하면 현재 예약된 URL이 어떤 계정으로 구성되었는지 확인 할 수 있다. 현재 예약된 URL의 계정은 NETWORK SERVICE 계정으루 구성된 것을 확인할 수 있다.

netsh http show urlacl

 

 

여기서 문제는 서비스계정이 서비스 영역 내에서가 아니라 Reporting Services 구성 관리자 내에서 변경한 것이다. 그 결과 예약된 URL 권한은 새 서비스 계정이 업데이트 되지 않은 것을 확인 할 수 있다. 서비스를 사용하려고 할 때 RSService 계정권한이 없기 때문에 액세스를 거부당한것이다.

 

문제를 해결 하기 위해 Report Services 구성관리자에서 계정을 다시 변경 할 수 있다. Service Account 탭으로 이동하여 새로운 계정으로 변경할 수 있다. 그리고 암호화키를 백업하라는 메시지를 표시 할 것이다.

 

이 방법을 수행하면 예약된 URL을 제거하고 다시 생성하는 것을 확인 할 수 있다.

 

Netsh 명령을 실행하면 서비스계정이 올바르게 작동하는 것을 확인 할 수 있다.

 

참고로 네트워크 서비스에서 도메인 사용자 계정으로 변경하면 rereportserver.comfig에서 내 인증 유형에 RSWindowsNegotiate 탭을 추가한다. Kerberos를 구성하지 않는 경우 3번쨰 프롬프트에서 401 에러를 발생할 수 있다.

 

 

[참고자료]

  • Reporting Services: Error creating HTTP endpoint – Access is Denied :

http://blogs.msdn.com/b/psssql/archive/2015/03/13/reporting-services-error-creating-http-endpoint-access-is-denied.aspx

  • About URL Reservations and Registration :

https://msdn.microsoft.com/en-us/library/bb677364.aspx

 

 

2015-03-25 / 강성욱 / http://sqlmvp.kr

 

 

sqlserver, mssql, mssqlserver, 데이터베이스, SSRS, Reporting Services, 보고서 서비스, 액세스 거부, SSRS 계정 변경, Access Denied, HTTP 엔드포인트 생성 오류, Reporting Services 구성관리자, SSRS 구성관리자

반응형