보고서 서버 데이터베이스 관리(SSRS 기본 모드)
Reporting Services 배포는 두 SQL Server 관계형 데이터베이스를 내부 스토리지로 사용합니다. 기본적으로 데이터베이스의 이름은 ReportServer
및 ReportServerTempdb
입니다. ReportServerTempdb
는 기본 보고서 서버 데이터베이스를 사용하여 만들어지고 임시 데이터, 세션 정보 및 캐시된 보고서를 저장하는 데 사용됩니다.
Reporting Services에서 데이터베이스 관리 태스크에는 보고서 서버 데이터베이스를 백업 및 복원이 포함됩니다. 작업에는 중요한 데이터를 암호화하고 암호 해독하는 데 사용되는 암호화 키 관리도 포함됩니다.
보고서 서버 데이터베이스의 관리를 위해 SQL Server는 다양한 도구를 제공합니다.
SQL Server Management Studio, Transact-SQL 명령 또는 데이터베이스 명령 프롬프트 유틸리티를 사용하여 다음을 수행할 수 있습니다.
- 보고서 서버 데이터베이스 백업 또는 복원
- 보고서 서버 데이터베이스 이동
- 보고서 서버 데이터베이스 복구
자세한 내용은 다른 컴퓨터로 보고서 서버 데이터베이스 이동(SSRS 기본 모드) 을 참조하세요.
기존 데이터베이스 내용을 다른 보고서 서버 데이터베이스에 복사하려면 다른 보고서 서버 인스턴스에 보고서 서버 데이터베이스의 복사본을 연결하여 사용합니다. 또는 SOAP 호출을 사용하여 새 데이터베이스에서 보고서 서버 콘텐츠를 다시 만드는 스크립트를 만들고 실행할 수 있습니다. rs 유틸리티를 사용하여 이 스크립트를 실행할 수 있습니다.
Reporting Services 구성 도구의 데이터베이스 설치 페이지를 사용하여 보고서 서버와 보고서 서버 데이터베이스 간의 연결을 관리할 수 있습니다. 이를 사용하여 특정 보고서 서버 인스턴스에 사용되는 데이터베이스를 확인할 수도 있습니다. 보고서 서버 데이터베이스에 대한 보고서 서버 연결과 관련된 자세한 내용은 보고서 서버 데이터베이스 연결 구성(보고서 서버 구성 관리자)을 참조하세요.
SQL Server 로그인 및 데이터베이스 권한
보고서 서버 데이터베이스는 보고서 서버에서 내부적으로 사용됩니다. 두 데이터베이스에 대한 연결은 Report Server 서비스에서 이루어집니다. Reporting Services 구성 도구를 사용하여 보고서 서버 데이터베이스에 대한 보고서 서버 연결을 구성합니다.
데이터베이스에 대한 보고서 서버 연결의 자격 증명은 서비스 계정, Windows 로컬 또는 도메인 계정, SQL Server 데이터베이스 사용자일 수 있습니다. 연결에 대한 기존 계정을 선택해야 합니다. Reporting Services는 계정을 만들지 않습니다.
보고서 서버 데이터베이스에 대한 SQL Server 로그인은 사용자가 지정하는 계정에 대해 자동으로 만들어집니다.
데이터베이스에 대한 권한도 자동으로 구성됩니다. Reporting Services 구성 도구는 보고서 서버 데이터베이스에 대한 공용 및 RSExecRole 역할에 계정 또는 데이터베이스 사용자를 할당합니다. RSExecRole 은 데이터베이스 테이블에 액세스하고 저장 프로시저를 실행할 수 있는 권한을 제공합니다. RSExecRole은 보고서 서버 데이터베이스를 만들 때 주 데이터베이스 및 msdb에 만들어집니다. RSExecRole 은 보고서 서버 데이터베이스에 대한 db_owner 역할의 멤버로, 보고서 서버가 자동 업그레이드 프로세스를 지원하기 위해 고유한 스키마를 업데이트할 수 있도록 합니다.
보고서 서버 데이터베이스에 대한 명명 규칙
주 데이터베이스를 만들 때 데이터베이스의 이름은 데이터베이스 식별자에 대해 지정된 규칙을 따라야 합니다. 임시 데이터베이스 이름은 항상 기본 보고서 서버 데이터베이스와 동일한 이름을 사용하지만 Tempdb 접미사를 사용합니다. 임시 데이터베이스의 다른 이름은 선택할 수 없습니다.
보고서 서버 데이터베이스는 내부 구성 요소로 간주되므로 보고서 서버 데이터베이스의 이름을 바꾸는 것은 지원되지 않습니다. 보고서 서버 데이터베이스의 이름을 바꾸면 오류가 발생합니다. 특히 주 데이터베이스의 이름을 바꾸면 데이터베이스 이름이 동기화되지 않는다는 오류 메시지가 표시됩니다. ReportServerTempdb 데이터베이스의 이름을 바꾸면 나중에 보고서를 실행할 때 다음과 같은 내부 오류가 발생합니다.
"보고서 서버에서 내부 오류가 발생했습니다. 자세한 내용은 오류 로그를 참조하세요. (rsInternalError)
잘못된 개체 이름 ReportServerTempDB.dbo.PersistedStream
."
이 오류는 ReportServerTempdb
이름이 내부적으로 저장되고 저장 프로시저에서 내부 작업을 수행하는 데 사용되므로 발생합니다. 임시 데이터베이스의 이름을 바꾸면 저장 프로시저가 제대로 작동하지 않습니다.
보고서 서버 데이터베이스에서 스냅샷 격리 사용
보고서 서버 데이터베이스에서 스냅샷 격리를 사용하도록 설정할 수 없습니다. 스냅샷 격리를 설정하면 "선택한 보고서는 아직 볼 수 없습니다. 보고서가 렌더링 중이거나 보고서 스냅샷을 사용할 수 없습니다."
스냅샷 격리를 의도적으로 사용하도록 설정하지 않은 경우 다른 애플리케이션에서 특성을 설정하거나 모델 데이터베이스에서 스냅샷 격리를 사용하도록 설정하여 모든 새 데이터베이스가 설정을 상속할 수 있습니다.
보고서 서버 데이터베이스에서 스냅샷 격리를 해제하려면 Management Studio를 시작하고 새 쿼리 창을 연 후 다음 스크립트를 붙여넣어 실행합니다.
ALTER DATABASE ReportServer
SET ALLOW_SNAPSHOT_ISOLATION OFF
ALTER DATABASE ReportServerTempdb
SET ALLOW_SNAPSHOT_ISOLATION OFF
ALTER DATABASE ReportServer
SET READ_COMMITTED_SNAPSHOT OFF
ALTER DATABASE ReportServerTempDb
SET READ_COMMITTED_SNAPSHOT OFF
데이터베이스 버전 정보
Reporting Services에서는 데이터베이스 버전에 대한 명시적인 정보를 사용할 수 없습니다. 그러나 데이터베이스 버전이 항상 제품 버전과 동기화되므로 제품 버전 정보를 사용하여 데이터베이스 버전 변경 여부를 알 수 있습니다. Reporting Services에 대한 제품 버전 정보는 로그 파일(모든 SOAP 호출의 헤더)에 나타나며 보고서 서버 URL에 연결할 때(예: 브라우저에서 https://localhost/reportserver
를 열 때) 나타나는 파일 버전 정보를 통해 표시됩니다.
관련 콘텐츠
- 기본 모드 보고서 서버 데이터베이스 만들기(보고서 서버 구성 관리자)
- 보고서 서버 서비스 계정 구성(보고서 서버 구성 관리자)
- 보고서 서버 데이터베이스 연결 구성(보고서 서버 구성 관리자)
- 보고서 서버 데이터베이스 만들기(보고서 서버 구성 관리자)
- 보고서 서버 구성 관리자(기본 모드)
- Reporting Services 백업 및 복원 작업
- 보고서 서버 데이터베이스(SSRS 기본 모드)
- Reporting Services 보고서 서버(기본 모드)
- 암호화된 보고서 서버 데이터 저장(보고서 서버 구성 관리자)
- 암호화 키 구성 및 관리(보고서 서버 구성 관리자)