적용 대상: SQL Server Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
SQL Server 2022 SSAS(Analysis Services) CU1 이상 버전에는 모델 데이터베이스 스키마에 대한 특정 쓰기 작업에 대한 향상된 암호화가 포함됩니다. 이전 SSAS 버전에서 업그레이드할 때 최신 암호화를 사용하도록 모델 데이터베이스를 업데이트해야 합니다. 암호화가 업그레이드되지 않으면 특정 데이터베이스 스키마 쓰기 작업이 차단됩니다. 예를 들어 새 데이터 원본을 추가하거나 연결 문자열을 변경할 수 없습니다.
주의
향상된 암호화를 사용하는 새 또는 업그레이드된 Analysis Services 데이터베이스는 이전 버전의 SQL Server Analysis Services에 로드할 수 없습니다.
테이블 형식 모델 데이터베이스 업그레이드
1600 이상 호환성 수준의 테이블 형식 모델 데이터베이스의 경우 특정 스키마 쓰기 작업 중에 다음 오류를 반환할 수 있습니다.
"새 테이블 형식 데이터베이스 '%{DatabaseName/}'은(는) 최신 암호화 스키마를 사용하지 않습니다. EnsureProperEncryption 옵션을 사용하여 RemoveDiscontinuedFeatured 명령을 실행하거나(또는 동일한 옵션을 사용하여 백업 파일에서 DB를 복원) 최신 암호화로 업그레이드하세요."
암호화를 업그레이드하려면 데이터베이스를 백업한 다음 SQL Server Management Studio에서 다음 XMLA 명령을 실행하여 EnsureProperEncryption 옵션을 사용하도록 설정하여 복원합니다.
<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" Transaction="false" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl100="http://schemas.microsoft.com/analysisservices/2008/engine/100">
<Restore xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:ddl922="http://schemas.microsoft.com/analysisservices/2022/engine/922">
<File>your_backup_file_pathname</File>
<AllowOverwrite>true</AllowOverwrite>
<ddl922:EnsureProperEncryption>true</ddl922:EnsureProperEncryption>
</Restore>
</Batch>
또는 데이터베이스가 이미 로드된 경우 SQL Server Management Studio에서 XMLA(XML for Analysis) 명령을 실행합니다.
<RemoveDiscontinuedFeatures xmlns='http://schemas.microsoft.com/analysisservices/2003/engine' xmlns:ddl922='http://schemas.microsoft.com/analysisservices/2022/engine/922'>
<DatabaseID>DatabaseName</DatabaseID>
<ddl922:EnsureProperEncryption>true</ddl922:EnsureProperEncryption>
</RemoveDiscontinuedFeatures>
다차원 모델 데이터베이스 업그레이드
모든 호환성 수준에서 다차원 모델 데이터베이스의 경우 특정 스키마 쓰기 작업 중에 다음 오류를 반환할 수 있습니다.
"다차원 데이터베이스 '%{DatabaseName/}'은(는) 최신 암호화 스키마를 사용하지 않습니다. 백업 파일을 만들고 EnsureProperEncryption 옵션을 사용하여 백업 파일에서 DB를 복원하여 최신 암호화로 업그레이드하세요."
암호화를 업그레이드하려면 데이터베이스를 백업한 다음 EnsureProperEncryption 옵션을 사용하도록 설정하여 복원합니다.
또는 데이터베이스가 이미 로드된 경우 SQL Server Management Studio에서 다음 XMLA 명령을 실행합니다.
<RemoveDiscontinuedFeatures xmlns='http://schemas.microsoft.com/analysisservices/2003/engine' xmlns:ddl922='http://schemas.microsoft.com/analysisservices/2022/engine/922'>
<DatabaseID>DatabaseName</DatabaseID>
<ddl922:EnsureProperEncryption>true</ddl922:EnsureProperEncryption>
</RemoveDiscontinuedFeatures>
암호 키 수명 관리
SQL Server Analysis Services는 데이터베이스 암호화 키를 사용하여 데이터 원본 자격 증명 및 연결 문자열과 같은 중요한 데이터를 데이터베이스별로 암호화합니다. SSAS 2025 이상 버전에서는 DBSCHEMA_CATALOGS 스키마 행 집합을 사용하여 모델 데이터베이스의 암호화 수준과 데이터베이스 키의 사용 기간을 확인할 수 있습니다. ENCRYPTION_LEVEL 열을 확인하고 수준이 Analysis Services 2022 CU인지 확인합니다. CRYPTOKEY_UPDATED 열에서 데이터베이스 암호화 키의 생성 날짜 또는 마지막 다시 생성 날짜를 확인합니다.
RemoveDiscontinuedFeatures 명령을 사용하여 데이터베이스 암호화 키를 다시 생성할 수 있습니다. 앞에서 설명한 레거시 암호화에서 업그레이드하는 것과 마찬가지로 RemoveDiscontinuedFeatures 명령은 보안 데이터 암호를 해독하고 새 데이터베이스 암호화 키를 생성한 다음 새 데이터베이스 암호화 키를 사용하여 보안 데이터를 다시 암호화합니다.
<RemoveDiscontinuedFeatures xmlns='http://schemas.microsoft.com/analysisservices/2003/engine' xmlns:ddl922='http://schemas.microsoft.com/analysisservices/2022/engine/922'>
<DatabaseID>DatabaseName</DatabaseID>
<ddl922:EnsureProperEncryption>true</ddl922:EnsureProperEncryption>
</RemoveDiscontinuedFeatures>
서비스 계정 변경 절차
SQL Server Analysis Services는 서버 전체 암호화 키를 사용하여 각 데이터베이스 암호화 키를 암호화합니다. SSAS 2022 CU1 이상 버전에서 향상된 암호화는 DPAPI(데이터 보호 API)를 사용하여 현재 서비스 계정 및 로컬 컴퓨터 계정의 정보를 사용하여 서버 암호화 키를 안전하게 보호하고 액세스합니다. 서버 암호화 키는 로컬 컴퓨터에서 동일한 서비스 계정을 사용하여 암호 해독할 수 있습니다. 현재 서비스 계정에 대한 종속성 때문에 SQL Server Analysis Services 서비스 계정을 변경하기 위해 아래 절차를 따라야 합니다.
다차원 인스턴스의 서비스 계정 변경
다차원 모드에서 실행되는 서버 인스턴스의 서비스 계정을 변경해야 하는 경우 모델 데이터베이스를 백업하고 서버를 제거한 다음 다시 설치한 다음 모델 데이터베이스를 복원해야 합니다. 이 방법을 사용하면 QueryLogConnectionString 및 ImpersonationAccount 자격 증명을 포함하여 모든 보안 개체가 올바르게 암호화됩니다. 또는 연결/분리 방법을 사용할 수도 있지만 이 방법을 사용하려면 기존 데이터 폴더를 유지해야 합니다.
SSMS를 사용하여 각 데이터베이스를 .abf 파일에 백업합니다.
SSAS 서버 인스턴스를 제거합니다.
남은 데이터 폴더 또는 구성 파일과 같이 제거된 서버 인스턴스의 잔재를 삭제합니다.
새 SSAS 서버 인스턴스를 설치하고 새 서비스 계정을 할당합니다.
백업 .abf 파일에서 데이터베이스를 복원합니다.
데이터 손실 또는 보안 취약성을 방지하려면 이러한 단계를 구현할 때 주의해야 합니다. 서비스 계정 또는 서버 구성을 크게 변경하기 전에 항상 데이터 백업을 수행하고 시스템 관리자의 지침을 구합니다.
테이블 형식 인스턴스의 서비스 계정 변경
테이블 형식 서버는 서버 전체 QueryLogConnectionString 또는 ImpersonationAccount 자격 증명을 사용하지 않으므로 테이블 형식 서버 인스턴스에 전체 서버 다시 설치가 필요하지 않습니다. 이 절차는 데이터베이스 백업을 사용하지 않더라도 서비스 계정 또는 서버 구성을 크게 변경하기 전에 항상 데이터 백업을 수행하고 시스템 관리자의 지침을 구해야 합니다.
권장되지만 선택 사항인 SSMS를 사용하여 각 데이터베이스를 .abf 파일로 백업합니다.
모든 모델 데이터베이스를 분리합니다.
SSAS 서비스를 중지합니다.
SSAS 서비스 계정을 변경합니다.
SSAS 서비스를 시작합니다.
모든 모델 데이터베이스를 다시 연결합니다.
모델 데이터베이스를 다른 서버 인스턴스로 이동
서버 간에 모델 데이터베이스를 전송해야 하는 경우 백업/복원 또는 분리/연결 방법을 사용해야 합니다. SSMS, AMO 또는 XMLA를 사용하여 분리/연결 방법을 사용하는 방법에 대한 자세한 내용은 Analysis Services 데이터베이스 이동을 참조하세요.
장애 조치 클러스터 지원
향상된 암호화를 사용하는 SQL Server 2025 Analysis Services를 WSFC(Windows Server 장애 조치(failover) 클러스터)에 설치하여 고가용성을 달성할 수 있습니다. WSFC 환경에서 모든 서버 인스턴스는 모든 서버 인스턴스에서 서버 암호화 키를 암호 해독할 수 있도록 서비스 계정과 동일한 Active Directory 도메인 사용자 계정을 사용해야 합니다. 로컬 Windows 계정, Build-In 계정 및 Entra ID 계정은 지원되지 않습니다.
비고
향상된 암호화를 사용하는 SQL Server 2022 Analysis Services CU1은 장애 조치(failover) 클러스터 지원을 제공하지 않습니다. 장애 조치(failover) 클러스터 환경에서 향상된 암호화를 활용하려면 SQL Server 2025 Analysis Services로 업그레이드해야 합니다.
문제 해결
문제: 위의 백업/복원 단계를 따르지 않으면 SQL Server 2022 Analysis Services 서비스 계정을 변경하면 서비스가 시작되지 않을 수 있습니다.
Log\msmdsrv.log 파일의 다음 메시지는 서비스 계정이 변경되어 서비스를 시작할 수 없음을 나타냅니다.
"Server Gen2 암호화는 없지만 서버 어셈블리 개체 시스템은 서버 gen2 암호화를 사용하도록 설정되어 있습니다. 서버를 종료합니다. (원본: \?\C:\Program Files\Microsoft SQL Server\MSAS16. MSSQLSERVER\OLAP\Log\msmdsrv.log, Type: 1, Category: 289, 이벤트 ID: 0x4121005C"
해결책: msmdsrv.ini 파일의 ConfigurationSettings>DataDir에서 Data 폴더의 위치를 확인합니다. 그런 다음 데이터 폴더에서 .asm.xml포함하는 이름과 .asm 확장명을 가진 모든 폴더를 삭제합니다.
파일을 삭제한 후 Analysis Services 서비스를 다시 시작합니다. .asm 파일은 자동으로 다시 만들어집니다.
그런 다음, SSMS(SQL Server Management Studio)를 사용하여 다음 암호화된 속성을 구성해야 합니다.
- Log\QueryLog\QueryLogConnectionString.
- 각 데이터 원본의 위임계정 암호 또는 인증 암호입니다.