programing

SQL Server 복원 오류 - 액세스가 거부되었습니다.

topblog 2023. 4. 8. 07:51
반응형

SQL Server 복원 오류 - 액세스가 거부되었습니다.

하여 'Database'라는을 했습니다.tables.bakDataLabTables

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

System.Data.Sql Client.SqlError:'Restore Container: '를 시도하는 동안 운영 체제에서 '5(Access is denied)' 오류를 반환했습니다.: 'c:\Program Files\Microsoft SQL Server\의 ValidateTargetForCreation'MS SQL.1\MSSQL\DataLabTables.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\....는 보호된 디렉토리입니다.일반(admin 이외) 사용자는 이 디렉토리(및 그 서브 디렉토리)에 액세스 할 수 없습니다.

BAK는 BAK를 사용합니다.C:\temp을 사용하다

을 사용하다 보니 의 알알......SQL Server ★★★★★★★★★★★★★★★★★」SQL Server Agent ''logon as아래를 달리고 있었다.Network Services백업 복원을 수행할 수 있는 쓰기 액세스 권한이 없는 계정입니다.

두를 모두 이이 on on on로 했습니다.Local System Account이치노

최근에 SQL 2008 R2에서 이 문제에 직면했는데 다음 솔루션이 효과가 있었습니다.

1) 복원하려는 데이터베이스와 동일한 이름으로 새 데이터베이스를 만듭니다 2) 복원 중에 위에서 사용한 이름을 사용하고 옵션에서 덮어쓰기 옵션을 클릭합니다.

다른 솔루션이 작동하지 않을 경우 위의 방법을 시도해 보십시오.

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

출력 파일 디렉토리를 C:\Program Files\Microsoft SQL Server\로 변경했습니다.MSQL11.MSQLSERVER\MSSQL\DATA로 데이터베이스를 정상적으로 복원할 수 있었습니다.

원천

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

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

이 문제로 몇 시간이나 허비했어요그래도 잘 돼가고 있어:

내 경우 "access denied"는 "access denied"를 의미했습니다. Windows 디바이스의 mssqlstudio 사용자 계정이 오류 메시지에 지정된 폴더를 완전히 제어하지 못했습니다.내가 모든 걸 통제했어액세스가 더 이상 거부되지 않고 복원에 성공했습니다.

왜 폴더가 스튜디오에 잠겼는지 누가 알겠는가? 나는 더 이상 대답하려고 하지 않고 있는 그대로 처리할 충분한 질문들이 있다.

이 문제가 발생하여 관리자로 로그인하면 문제가 해결되었습니다.

다른 시나리오로는 여러 데이터베이스 경로가 존재할 수 있습니다.먼저, 현재 새 데이터베이스가 저장되고 있는 경로를 기록합니다. 빈 한 후 을를 실행할 수 있습니다.Tasks/Restore하려는 경로가 빈 가 작성된와 동일한지 복원 경로가 합법적이더라도 현재 작업 중인 경로가 아닌 경우에도 액세스 거부 오류가 발생합니다.경로가 합법적이지 않을 때는 찾기 쉽고 경로가 합법적이지만 현재 경로가 아닌 경우에는 찾기 어렵습니다.

죄송합니다. 코멘트를 드릴 수 없습니다.

저도 같은 문제가 있었어요.이 경우 이전 SQL 서버 폴더(서버에 존재)에 복원하려고 하는 것과 관련된 문제였습니다.이는 이전 SQL Server 백업(SQL Server 2012 Backup)이 새 SQL Server(SQL Server 2014)에 복원되었기 때문입니다.실제 문제는 @marc_s의 답변과 크게 다르지 않습니다.어쨌든 타겟 폴더만 새 SQL Server DATA 폴더로 변경했습니다.

이것이 최선의 해결책은 아닐 수도 있지만 SQL Server 2005에서 복원을 하려고 했지만 SQL Server 2008로 변경했는데 효과가 있었습니다.

이런 문제가 있다.SQL Server 폴더에서 압축을 사용하도록 설정했기 때문에 오류가 발생했습니다.

친구들...데이터베이스를 복원하는 동안 동일한 문제가 발생하여 모든 솔루션을 시도했지만 해결되지 않았습니다.그리고 SQL 2005를 다시 설치해보니 문제가 해결되었습니다.마지막으로 SQL을 설치하면서 커스터마이즈 옵션을 확인하는 것을 잊은 적이 있습니다.설치 중에 두 번 와서 하나만 확인했는데..

내 경우 - 복원 중인 데이터베이스의 백업 경로를 다시 확인해야 했습니다.처음 했을 때 다른 경로에서 복원한 적이 있습니다.처음 사용하던 백업 경로를 사용하도록 백업 경로를 수정했더니 제대로 작동했습니다.

데이터 및 로그용 폴더를 새로 만들었는데 정상적으로 동작했습니다.폴더/파일 권한 문제였던 것 같습니다.

이 문제는 경로가 올바르지만 서비스 계정이 데이터 파일의 소유자가 아닌 경우에도 발생합니다(아직 읽기/쓰기 액세스 권한이 있습니다).이 문제는 파일에 대한 권한이 폴더의 권한과 일치하도록 재설정된 경우(물론 서비스가 중지된 동안) 발생할 수 있습니다.

이 경우 가장 쉬운 해결책은 각 데이터베이스를 분리했다가 다시 연결하는 것입니다(접속할 때 소유자가 서비스 계정으로 변경되기 때문입니다).

이것을 시험해 보세요.

[ Restore DB ](DB 복원 마법사) 창에서 [Files](파일) 탭으로 이동하여 [Relocate All files to folder](모든 파일을 폴더로 재배치) 체크박스를 끄고 복원 대상을 C:에서 다른 드라이브로 변경합니다.그런 다음 일반 복원 프로세스를 진행합니다.정상적으로 복원됩니다.

같은 문제가 발생했지만 SQL Server 2008 r2를 사용했기 때문에 옵션을 체크인하고 sql이 .mdf 및 .ldf 파일을 저장할 경로를 확인해야 합니다.Sql Server 설치 경로를 선택해야 합니다.이것으로 문제를 해결했습니다. 도움이 되었으면 합니다.

그런 다음 C: 아래의 하위 폴더로 이동하여 사용자가 사용하는 폴더에 대한 모든 권한을 가지고 있는지 확인합니다.

언급URL : https://stackoverflow.com/questions/7031792/sql-server-restore-error-access-is-denied

반응형