[sql-server] SQL Server 복원 오류-액세스가 거부되었습니다

로컬 컴퓨터에 데이터베이스를 만든 다음 tables.baktable 이라는 백업을 수행했습니다 DataLabTables.

해당 백업을 해당 테이블이없는 원격 시스템으로 이동하고 복원을 시도했지만 다음 오류가 발생했습니다.

System.Data.SqlClient.SqlError : ‘c : \ Program Files \ Microsoft SQL Server \ MSSQL.1 \ MSSQL \ DataLabTables에서’RestoreContainer :: ValidateTargetForCreation ‘을 시도하는 동안 운영 체제에서’5 (액세스가 거부되었습니다.) ‘오류를 반환했습니다. .mdf ‘.

문제가있는 경우 어떻게 내 권리를 수정합니까?



답변

SQL Server 2012 에서이 문제가 발생했습니다.

‘파일’섹션에서 ‘모든 파일을 폴더로 재배치’라고 표시된 상자를 선택하면됩니다.

여기에 이미지 설명을 입력하십시오

(이미지를 전체 크기로 보려면 클릭하십시오)

물론 이것은 올바른 버전의 SQL Server가 설치되어 있다고 가정합니다.


답변

오류 메시지에서 복원 작업 의 대상 ( c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DataLabTables.mdf)을 확인할 때 오류가 발생했음을 나타 냅니다 .

다음과 같이 들립니다.

a) 해당 파일이 이미 존재하며 (이미 이전에 복원했기 때문에) SQL Server에서 사용 중입니다.

또는

b) 해당 디렉토리가 전혀 존재하지 않습니다

귀하의 질문에, 귀하는 해당 테이블에 대한 백업을 생성했다고 언급했지만 SQL Server 백업은 작동하지 않습니다. 이러한 백업은 항상 전체 데이터베이스 (또는 해당 데이터베이스의 하나 이상의 파일 그룹)입니다.

내 직감은 : 당신은 이미 그 데이터베이스를 이전에 이미 복원했으며 지금은 두 번째 복원시, 복원 마법사에서 “기존 데이터베이스 덮어 쓰기”체크 상자를 체크하지 않았으므로 기존 파일을 덮어 쓸 수없고 복원이 실패합니다.


원격 서버에서 복원을 실행중인 사용자는 원격 서버의 해당 디렉토리에 액세스 할 수 없습니다.


C:\program files\.... 보호 된 디렉토리-일반 (관리자가 아닌) 사용자는이 디렉토리 (및 해당 서브 디렉토리)에 액세스 할 수 없습니다.


가장 쉬운 해결책 : BAK 파일을 다른 곳에 (예 🙂 넣어서 C:\temp거기에서 복원하십시오


답변

나는 같은 문제를 겪고 있었다. 내 SQL ServerSQL Server Agent서비스 logon asNetwork Services백업 복원을 수행하기 위해 쓰기 권한이없는 계정 으로 실행되고있는 것으로 나타났습니다.

로그온 할 수 있도록이 두 서비스를 모두 변경 Local System Account했으며 문제가 해결되었습니다.


답변

최근에 나는 SQL 2008 R2 에서이 문제에 직면했으며 아래 솔루션이 나를 위해 일했습니다.

1) 복원하려는 것과 동일한 이름으로 새 데이터베이스를 작성하십시오. 2) 복원하는 동안 위에서 사용한 것과 동일한 이름을 사용하고 옵션에서 겹쳐 쓰기 옵션을 클릭하십시오.

다른 솔루션이 작동하지 않으면 위의 내용을 알 수 있습니다.


답변

백업 작성자는 MSSql 버전 10을 설치 했으므로 백업을 수행 할 때 원래 파일 경로 (같은 위치에 복원 할 수 있도록)도 저장하지만 버전 11이 있으므로 대상 디렉토리를 찾을 수 없었습니다.

따라서 출력 파일 디렉토리를 C : \ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ DATA \로 변경하여 데이터베이스를 성공적으로 복원 할 수있었습니다.

출처


답변

나는 비슷한 문제가 있었다. 2005 .bak 파일을 복원하려고했는데 정확히 같은 오류가 발생했습니다. 덮어 쓰기 옵션을 선택했지만 아무 소용이 없습니다.

내 솔루션은 폴더로 이동하고 속성 화면을 통해 액세스 권한을 편집하여 SQL 사용자에게 해당 디렉토리에 대한 액세스 권한을 부여하는 것이 었습니다.


답변

이 문제로 몇 시간을 잃었습니다. 그래도 갈거야 :

필자의 경우 “액세스 거부”는 실제로 “액세스 거부”를 의미했습니다. 내 Windows 장치에서 mssqlstudio의 사용자 계정이 오류 메시지에 지정된 폴더를 완전히 제어하지 못했습니다. 나는 그것을 완전히 통제했다. 액세스가 더 이상 거부되지 않고 복원에 성공했습니다.

왜 폴더가 스튜디오에 잠겨 있습니까? 누가 알아 ? 더 답변하지 않고 처리해야 할 충분한 질문이 있습니다.