문제
- "Microsoft SQL Server 데이터베이스에서 데이터베이스 파일을 로드하는 동안 오류가 발생했습니다."라는 오류가 표시됩니다. ESET Windows 서버 제품에서 'NT 권한\시스템' 계정에 마스터 데이터베이스의 시스템 보기에서 데이터를 읽을 수 있는 충분한 권한이 있는지 확인하십시오."라는 오류가 발생합니다
- 데이터베이스 데이터의 사용자 지정 위치를 가져올 때 오류가 나타납니다
- 데이터베이스 데이터의 사용자 지정 위치를 가져올 수 있도록 ESET 서비스 활성화
- 단일 서버의 여러 Microsoft SQL Server 인스턴스
해결 방법
데이터베이스 데이터의 사용자 지정 위치를 가져올 때 오류가 나타납니다
Microsoft SQL Server의 자동 제외는 주로 데이터베이스 파일의 기본 위치로 구성됩니다. 그러나 데이터베이스 파일이 사용자 지정 위치에 저장된 경로도 포함될 수 있습니다. 이 경우, 마스터 데이터베이스에서 이 정보를 추출할 수 있는 적절한 권한이 NT AUTHORITY\SYSTEM 계정에 있어야 합니다.
Microsoft SQL Server 2016 이상에서 Microsoft는 NT AUTHORITY\SYSTEM 계정에 대한 sysadmin 서버 역할을 제거하여 ESET Windows 서버 제품이 Microsoft SQL Server 인스턴스의 데이터베이스 데이터 위치가 포함된 마스터 데이터베이스의 데이터에 대한 액세스 권한을 잃게 되었습니다.
ESET Windows 서버 제품은 오류 메시지를 통해 이 문제를 알립니다. 로그 파일을 클릭하고 드롭다운 메뉴에서 이벤트를 선택한 후 오류 메시지를 확인합니다:
"Microsoft SQL Server 데이터베이스에서 데이터베이스 파일을 로드하는 동안 오류가 발생했습니다. 마스터 데이터베이스의 시스템 보기에서 데이터를 읽을 수 있는 충분한 권한이 'NT AUTHORITY\SYSTEM' 계정에 있는지 확인하세요."라는 메시지가 표시됩니다
이미지를 클릭하면 새 창에서 크게 볼 수 있습니다
ESET 서비스가 데이터베이스 데이터의 사용자 지정 위치를 가져오도록사용 설정
ESET서비스가 데이터베이스 데이터의 사용자 지정 위치를 가져오도록하려면 Microsoft SQL Server Management Studio를 사용하여 아래 세 가지 절차 중 하나를 따르세요:
- '모든 정의 보기' 권한을 NT 권한\시스템 계정에 부여합니다(권장)
- NT AUTHORITY\SYSTEM 계정에 'sysadmin' 서버 역할을 부여합니다
- 'db_owner' 데이터베이스 역할을 NT 권한\시스템 계정의 '마스터' 데이터베이스에 할당합니다
A. '모든 정의 보기' 권한을 NT AUTHORITY\SYSTEM 계정에 부여(권장)
-
Microsoft SQL Server 관리 스튜디오로 이동하여 선택한 Microsoft SQL Server 인스턴스에 연결합니다.
-
보안을 클릭합니다. 부여 열에서 모든 정의 보기 옆의 확인란을 선택합니다. 확인을 클릭합니다.
그림 2-1
B. NT 권한\시스템 계정에 'sysadmin' 서버 역할 부여하기
-
Microsoft SQL Server 관리 스튜디오로 이동하여 선택한 Microsoft SQL Server 인스턴스에 연결합니다.
-
서버 역할을 클릭하고 sysadmin 옆의 확인란을 선택한 후 확인을 클릭합니다.
그림 2-2
C. NT 권한\시스템 계정의 '마스터' 데이터베이스에 'db_owner' 데이터베이스 역할 할당하기
-
Microsoft SQL Server 관리 스튜디오로 이동하여 선택한 Microsoft SQL Server 인스턴스에 연결합니다.
-
사용자 매핑을 클릭합니다. 이 로그인에 매핑된 사용자 섹션에서 마스터 옆의 확인란을 선택합니다. 데이터베이스 역할 멤버십 섹션에서 db_owner 옆의 확인란을 선택합니다. 확인을 클릭합니다.
그림 2-3
단일 서버의 여러 MS SQL Server 인스턴스
Microsoft SQL Server Management Studio를 시작할 때 표시되는 연결 대화 상자를 사용하여 특정 Microsoft SQL Server 인스턴스에 연결할 수 있습니다:
-
Microsoft SQL Server Management Studio로 이동하여 선택한 서버에 연결합니다.
- 서버 이름 필드에 아래 형식에 따라 인스턴스를 입력하고 연결을 클릭합니다.
<서버_이름>\<인스턴스_이름>
그림 3-1
Microsoft SQL Server 인스턴스 목록 가져오기
서버에 설치된 Microsoft SQL Server 인스턴스 목록을 가져오는 방법에는 여러 가지가 있습니다:
-
Microsoft SQL Server의 새 인스턴스를 설치할 때 새 인스턴스의 이름을 입력하는 단계에서 설치 마법사에 현재 설치된 인스턴스 목록이 표시됩니다.
-
설치된 인스턴스 목록은 다음 Windows 레지스트리 경로에 있습니다:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\인스턴스 이름목록을 가져오려면 다음 PowerShell 명령을 사용합니다:
Get-Item "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" | % {$_.Property} -
각 Microsoft SQL Server 인스턴스는 해당 서비스를 시스템에 설치합니다. 이 서비스의 이름은 다음과 같은 형식을 갖습니다:
SQL Server(<인스턴스_이름>)다음 PowerShell 명령을 사용하여 시스템에서 이러한 서비스를 필터링하여 설치된 Microsoft Server SQL 인스턴스 목록을 가져올 수 있습니다:Get-Service | ?{ $_.DisplayName -like "SQL Server (*" }