Development Tip

데이터베이스 복원 중 mssql '5 (액세스가 거부되었습니다.)'오류

yourdevel 2020. 11. 25. 21:16
반응형

데이터베이스 복원 중 mssql '5 (액세스가 거부되었습니다.)'오류


SQL Server Management Studio를 통해 파일 (Tasks-> Restore-> Database; 장치에서 선택하고 파일을 선택한 후)에서 데이터베이스를 복원하고 싶습니다.

그 후이 오류가 발생합니다.

운영 체제가 'E : \ Program Files \ Microsoft SQL Server \ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \ XXXXXX.mdf'에서 'RestoreContainer :: ValidateTargetForCreation'을 시도하는 동안 '5 (액세스가 거부되었습니다.)'오류를 반환했습니다. 메시지 3156, 수준 16, 상태 8, 서버 XXXX, 줄 2

이 문제를 어떻게 해결합니까? 보안 오류입니까?


SQL Server가 실행되는 계정은 백업 파일이 있거나 데이터베이스를 복원하려는 위치에 액세스 할 수 없습니다. 당신이 사용할 수있는 SQL Server 구성 관리자를 SQL Server 인스턴스를 실행하는 데 사용되는 계정을 찾아 다음 확인 계정이 .BAK 파일과 MDF가 복원 될 폴더를 완벽하게 제어 할 수 있습니다 확인하십시오.

여기에 이미지 설명 입력


최근에이 문제가 발생했습니다. 저를위한 해결책은 데이터베이스 복원 대화 상자의 파일 페이지로 이동하여 "모든 파일을 폴더로 재배치"를 확인하는 것이 었습니다.데이터베이스 복원 대화 상자


글쎄, 제 경우에는 해결책이 매우 간단하고 직선적이었습니다.

가치의 log On As가치 만 바꿔야했습니다 .

해결 단계-

  1. 열다 Sql Server Configuration manager
  2. 오른쪽 click on SQL Server (MSSQLSERVER)
  3. 이동 Properties

여기에 이미지 설명 입력

  1. log On As값을 다음으로 변경LocalSystem

여기에 이미지 설명 입력

이것이 당신에게도 도움이되기를 바랍니다. :)


이 같은 문제가 발생했지만 다른 수정 사항이 있습니다. 기본적으로 저는 컴퓨터에 SQL Server와 SQL Server Express를 모두 설치했습니다. SQL Express로 복원하려고하면 작동하지 않지만 SQL Server로 복원하면 제대로 작동했습니다.


SQL 2012 DB에서 SQL 2008 R2 백업 DB를 복원하는 동안 동일한 오류가 발생했습니다. 오류는 C 드라이브에 .mdf 및 .ldf 파일을 저장할 수있는 권한이 부족하기 때문이라고 생각합니다. 나는 간단한 일을 시도한 다음 성공적으로 복원하는 데 성공했습니다.

이 시도:

DB 복원 마법사 창에서 파일 탭으로 이동하여 복원 대상을 C :에서 다른 드라이브로 변경합니다. 그런 다음 정기 복원 프로세스를 진행하십시오. 확실히 성공적으로 복원됩니다!

이것이 당신에게도 도움이되기를 바랍니다. 건배 :)


나는 이것을 발견했고 그것은 나를 위해 일했습니다.

CREATE LOGIN BackupRestoreAdmin WITH PASSWORD='$tr0ngP@$$w0rd'
GO
CREATE USER BackupRestoreAdmin FOR LOGIN BackupRestoreAdmin
GO
EXEC sp_addsrvrolemember 'BackupRestoreAdmin', 'dbcreator'
GO
EXEC sp_addrolemember 'db_owner','BackupRestoreAdmin'
GO

제 경우에는 페이지의 Overwrite the existing database (WITH REPLACE)아래에 있는 확인란을 선택해야했습니다 .OptionsRestore Database

이 오류가 발생한 이유는 데이터베이스에 이미 MDF 파일이 있고 덮어 쓰지 않았기 때문입니다.

이것이 누군가를 도울 수 있기를 바랍니다.


데이터베이스를 연결하는 경우 "연결할 데이터베이스"표, 특히 .mdf 파일을 지정한 후 소유자 열을 살펴보십시오. 계정을 기록하고 mdf 및 ldf 파일 모두에 대해 전체 권한을 부여하십시오.


위의 시나리오를 시도했지만 동일한 오류 5 (액세스 거부)가 발생했습니다. 심층 분석을 수행 한 결과 .bak 파일에 SQL 서비스 계정에 대한 액세스 권한이 있어야한다는 것을 알았습니다. 확실하지 않은 경우 시작-> 실행에 services.msc를 입력 한 다음 SQL 서비스 로그온 계정을 확인합니다.

그런 다음 파일로 이동하여 마우스 오른쪽 버튼을 클릭하고 속성에서 보안 탭을 선택한 다음 편집하여 새 사용자를 추가합니다.

마지막으로 전체 액세스 권한을 부여하려면 전체 권한을 부여하십시오.

그런 다음 SSMS에서 백업을 복원하십시오.


이것은 오늘 일찍 나에게 일어났습니다. 저는 로컬 서버의 관리자 그룹의 구성원이었고 방해받지 않는 액세스 권한을 가지고 있거나 그렇게 생각했습니다. 인스턴스에 이러한 DB가없는 경우에도 "교체"옵션을 선택했습니다.

예전에 같은 이름의 DB가 있었고 MDF 및 LDF 파일은 물리적으로 서버의 데이터 및 로그 폴더에 있지만 실제 메타 데이터는 sys.databases에 없습니다. SQL 서버의 서비스 계정도 기존 파일을 덮어 쓸 수 없습니다. 또한 파일의 소유자가 "알 수 없음"이라는 것을 알게되었고 소유권을 위의 2 개 파일로 변경해야 이제 로컬 서버의 관리자 그룹이 소유하고 이름을 바꿨습니다.

그런 다음 마침내 작동했습니다.


데이터베이스 복원 창의 파일 탭에서 "모든 파일을 폴더에 재 할당"을 선택했지만 기본 경로가 내 로컬 컴퓨터에 존재하지 않았기 때문에이 오류가 발생했습니다. 복원 할 수 있도록 변경 한 후 다른 폴더에 ldf / mdf 파일이 있습니다.


The account does not have access to the location for backup file. Take the following steps to access the SQL Server Configuration Manager via Computer Manager easily

  1. Click the Windows key + R to open the Run window.
  2. Type compmgmt.msc in the Open: box.
  3. Click OK.
  4. Expand Services and Applications.
  5. Expand SQL Server Configuration Manager.
  6. Change User Account in Log On As tab .

Now you can Restore Data Base easily


A good solution that can work is go to files > and check the reallocate all files

파일 재배치


나는 똑같은 문제가 있었지만 수정 사항이 달랐습니다. 회사가 내 컴퓨터의 모든 파일을 암호화하고 있습니다. 파일을 복호화 한 후 MSSQL은 DB에 접근하여 생성하는데 아무런 문제가 없었습니다. 그냥 마우스 오른쪽 버튼을 클릭 박 파일 -> 속성 -> 고급 ... -> 보안 데이터에 대한 내용을 암호화. 복호화

참고 URL : https://stackoverflow.com/questions/3494407/mssql-5access-is-denied-error-during-restoring-database

반응형