백업 장치를 열 수 없습니다. 운영 체제 오류 5


139

아래는 .bak데이터베이스 를 백업 (생성)하는 데 사용하는 쿼리입니다 .

그러나 실행할 때마다 항상이 오류 메시지가 나타납니다.

메시지 3201, 수준 16, 상태 1, 줄 1
백업 장치 'C : \ Users \ Me \ Desktop \ Backup \ MyDB.Bak'을 열 수 없습니다. 운영 체제 오류 5 (액세스가 거부되었습니다.).

메시지 3013, 수준 16, 상태 1, 줄 1
BACKUP DATABASE가 비정상적으로 종료됩니다.

이것은 내 쿼리입니다.

BACKUP DATABASE AcinsoftDB
TO DISK = 'C:\Users\Me\Desktop\Backup\MyDB.Bak'
WITH FORMAT,
MEDIANAME = 'C_SQLServerBackups',
NAME = 'Full Backup of MyDB';

글쎄, 오류 메시지는 분명하지 않습니까? 프로그램은 어떤 사용자로 실행됩니까? bak 파일이 있습니까? 수동으로 액세스 할 수 있습니까?
Pekka

1
제품을 태그 나 제목에 넣지 않았기 때문에 파일 경로의 SQL Server 용이라고 가정해야합니까?
Powerlord

도움이된다면 랩톱을 다시 포맷하기 전에이 쿼리를 실행할 수있었습니다. 이것은 SQL Server 2008이며 관리자로 실행 중입니다. 이 쿼리로 파일을 작성하는 중이므로 bak 파일이 없습니다.
Smiley

@Smiley Face : 네트워크가 아닌 로컬을 통해 SQL 파일을 읽어야합니다. 따라서 먼저 SQL 파일을 네트워크에서 로컬 드라이브로 이동하고 복원해야합니다.
mrjimoy_05

답변:


235

네, 방금이 점수를 받았습니다.

Windows 서비스를보십시오. 시작> 관리> 서비스

SQL Server (MSSQLSERVER) 목록에서 서비스를 찾으십시오. "로그온 방식"열을 찾으십시오 (목록에없는 경우 추가해야 함).

디렉토리에 권한을 부여해야하는 계정으로 탐색기> 속성> 공유 (및 보안)에서 마우스 오른쪽 버튼을 클릭하십시오.

참고 : 네트워크를 통과하는 경우 실제 디렉토리 및 공유에 권한을 부여하십시오.

적용 권한이 전파 될 때까지 기다렸다가 백업을 다시 시도하십시오.

참고 2 : 네트워크를 통해 백업 중이고 SQL이 "로컬 서비스"로 실행중인 경우 문제가 생길 수 있습니다 ... 권한을 할당하려고 시도하거나 로컬로 백업하고 xcopy를 SQL Server 외부에서 더 쉽게 수행 할 수 있습니다 ( 한 시간 후).

참고 3 : 네트워크 서비스로 실행 중이면 원격 시스템이 SQL Server의 네트워크 서비스를 인식하지 못합니다. 이 경우 실제 컴퓨터 자체에 대한 권한을 추가해야합니다 (예 : MyServer $.


20
권한 / 추가 / 고급은 목록에서 사용자를 찾지 못했지만 "NT Service \ MSSQLSERVER"에 붙여 넣었으며 챔피언처럼 작동했습니다.
Mark A

3
폴더에 '모든 사람'권한을 추가하면이 문제가 해결됩니까?
DevDave

3
그것이 실제로 공개 인증되지 않은 사람이라면, 그렇습니다. 그것이 "인증 된"경우라면, 원격 컴퓨터의 로컬 서비스는 일반적으로 자격이 없습니다 ... 그러나 당신은 우리에게 거의 해킹 가능한 범죄인 모든 사람에게 액세스 권한을 부여하고 싶습니까?
Robin Vessey 23

1
나를 위해 작동하지 않았고 C : \ temp \에 백업하고 있습니다. @Mark A가 제안한대로 붙여 넣을 때에도 폴더 권한 화면은 서비스 NT Service \ MSSQLSERVER 에서 사용하는 로그온을 인식하지 못합니다 . 해당 서비스에 적합한 대체 계정이 있습니까?
MGOwen

8
나를 위해 일한 훌륭한 솔루션! SQL Server Express 2014를 사용하고 있으므로 'NT Service \ MSSQL $ SQLEXPRESS'에 대한 쓰기 권한을 부여해야합니다.
mikhail-t

11

시작 메뉴에서 SQL Server 폴더로 이동하고 구성 도구를 클릭하십시오. SQL Server 구성 관리자 선택 SQL Server 서비스에서 원하는 인스턴스에서 (다른 이름으로 로그온)을 로컬 시스템으로 변경하십시오.


7

SQL Server 서비스 계정에 폴더에 쓸 수있는 권한이 없습니다 C:\Users\Kimpoy\Desktop\Backup\


22
이 폴더에 액세스 할 수있는 SQL Server 서비스 계정 권한을 어떻게 부여합니까? :)
Smiley

6

최근에이 문제가 있었지만 서버 A에서 백업 작업을 실행하고 있었지만 백업중인 데이터베이스는 서버 B에 서버 C의 파일 공유에있었습니다. 서버 A의 에이전트가 서버 B에게 백업을 실행하도록 지시하면 -sql 명령-서버 C에 백업을 쓰려고 시도하는 SERVER B에서 실제로 sql이 실행중인 서비스 계정

실제 BACKUP DATABASE 명령을 수행하는 SQL Server의 서비스 계정은 에이전트가 아니라 파일 시스템에 대한 권한이 필요합니다.


4

방금이 과정을 거치고있었습니다. MSSQLSERVER 로그인 사용자가 있는지 확인 full access했지만 여전히 문제가 발생했습니다. 대상을 C의 루트로 이동 한 후에 만 ​​작동했습니다. 더 중요한 것은 모든 권한을 가진 공유가 있었지만 테스트로 "Everyone"을 시도한 경우에도 사용자 폴더에서 더 중요합니다.

내 문제가 "수정 된"것으로 간주되는지 모르겠지만 "작동 중"입니다.

이 글타래를 발견 한 다른 사용자를위한 참고 자료입니다.


1
네트워크 드라이브에 사용자 경로가있는 엔터프라이즈 도메인으로 인해 로그인 한 컴퓨터에 관계없이 사용자가 투명하게 액세스 할 수 있다고 생각합니다. 이러한 상황 : superuser.com/a/730519
Bon

감사합니다! 이것은 나를 위해 문제를 정리했습니다. 백업 파일이있는 경로는 실제로 네트워크 경로였습니다.
JonM

4

Windows 10에서 SQL Express 2014 SP1과 동일한 문제에 직면합니다.

작동하는 솔루션

  1. 서비스를 입력하여 서비스 열기
  2. SQL Server (SQLExpress)를 찾아서 엽니 다.
  3. 로그온 탭으로 이동
  4. 로컬 시스템 계정을 선택하십시오 (또한 서비스가 데스크탑과 상호 작용하도록 허용 확인)
  5. 확인을 클릭하십시오. 서비스를 중지하십시오. 서비스를 다시 시작하십시오.
  6. 문제 해결됨

3

복원 프로세스를 수행 할 권한을 부여해야하는 사용자를 찾으려면 다음 단계를 수행하십시오.

SQL Server가 설치된 서버로 이동해야합니다. SQL Server 구성 관리자 찾기

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

다음으로 "SQL Server Services"로 이동해야합니다.

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

SQL Server (MSSQLSERVER) 인스턴스에는 "Logon As"열이있는 계정이 있습니다. 제 경우에는 NT Service \ MSSQLSERVER 입니다.

이는 소스 .bak 위치의 보안 탭에 추가하고 해당 사용자에게 "읽기"권한을 부여하여 백업 파일을 읽을 수있는 계정입니다.

백업 파일이 "D : \ Shared"폴더에 있다고 가정하면 다음과 같은 권한을 부여해야합니다.

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


2

나는 비슷한 문제가 있었다. .bak 파일 자체에 대한 쓰기 권한과 NETWORK SERVICE 사용자의 백업을 작성중인 폴더를 추가했습니다. 권한을 추가하려면 변경하려는 파일 / 디렉토리를 마우스 오른쪽 버튼으로 클릭하고 보안 탭을 선택한 다음 적절한 사용자 / 권한을 추가하십시오.


1
적절한 의미는 무엇입니까?
Steam

2

다음은 문제를 우회하기 위해 수행 한 작업입니다.

1) 백업으로 이동

2) 대상 파일 경로를 디스크로 제거

3) 추가 클릭

4) 파일 이름 : 확인란에 아래와 같이 .. \ backup 뒤에 백업 이름을 수동으로 입력하십시오. 여기서 Yourdb.bak는 데이터베이스 백업 이름입니다.

C : \ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Backup \ Yourdb.bak

5) 확인을 클릭하십시오

도움이 되었기를 바랍니다!


2

이러한 상황이 발생하는 이유 중 하나는 로컬 시스템을 사용하지 않고 MSSQLSERVER 서비스를 실행하고 있기 때문입니다. 이 문제를 해결하려면 다음 단계를 수행하십시오.

  1. Windows + R을 사용하여 공개 실행
  2. services.msc를 입력하면 서비스 대화 상자가 열립니다
  3. SQL Server 찾기 (MSSQLSERVER)
  4. 마우스 오른쪽 버튼을 클릭하고 속성을 클릭하십시오.
  5. 로그온 탭으로 이동
  6. 로컬 시스템 계정을 선택하고 "적용"및 "확인"을 클릭하십시오
  7. "SQL Server (MSSQLSERVER)"를 선택하여 왼쪽 패널에서 중지 링크를 클릭하고 완전히 중지되면 다시 시작하십시오.
  8. 백업을 즐기십시오.

그것이 나에게했던 것처럼 그것이 당신을 잘 도울 수 있기를 바랍니다. 건배!


1

정확한 해결책은 아니지만 외부 드라이브 경로를 사용하면이 문제가 해결됩니다.

BACKUP DATABASE AcinsoftDB
TO DISK = 'E:\MyDB.Bak'
WITH FORMAT,
MEDIANAME = 'C_SQLServerBackups',
NAME = 'Full Backup of MyDB';

1

SQL Server가 지정된 위치로 백업에 액세스 (쓰기) 할 수 없습니다.

먼저 Sql 서버가 실행중인 서비스 계정을 확인해야합니다. 구성 관리자 또는 Services.msc를 사용하여 수행 할 수 있습니다.

또는

아래 쿼리를 사용하십시오.

SELECT  DSS.servicename,
    DSS.startup_type_desc,
    DSS.status_desc,
    DSS.last_startup_time,
    DSS.service_account,
    DSS.is_clustered,
    DSS.cluster_nodename,
    DSS.filename,
    DSS.startup_type,
    DSS.status,
    DSS.process_id FROM    sys.dm_server_services AS DSS;

이제 service_account 열을보고 적어 둡니다.

백업을 수행하려는 위치로 이동하십시오. 귀하의 경우 : C : \ Users \ Me \ Desktop \ Backup

마우스 오른쪽 단추로 클릭-> 등록 정보-> 보안->

서비스 계정을 추가하고 읽기 / 쓰기 권한을 제공하십시오. 문제가 해결됩니다.



0

메시지 3201, 수준 16, 상태 1, 줄 1 백업 장치 'C : \ Backup \ Adventure_20120720_1024AM.trn'을 열 수 없습니다. 운영 체제 오류 5 (액세스가 거부되었습니다.). 메시지 3013, 수준 16, 상태 1, 줄 1 백업 로그가 비정상적으로 종료됩니다.

C 드라이브의 백업 폴더를 확인했습니다. 새 서비스 계정에 모든 권한 액세스 권한이 있습니까? 아닌지, "Test \ Kiran"서비스 계정에 모든 권한 보안 권한이 없음을 깨달았습니다.

서비스 계정을 완전히 제어하려면 아래 단계를 따르십시오.

  1. C 드라이브로 이동하여 백업 폴더를 마우스 오른쪽 버튼으로 클릭하십시오.
  2. 보안 탭을 선택하십시오.
  3. 편집 버튼을 클릭하면 새 창이 열립니다.
  4. 추가 버튼을 클릭하고 Test \ Kiran 사용자 계정을 입력하고 이름 확인 버튼을 클릭하면 입력 한 사용자가 존재하는지 여부를 확인하고 존재하는 경우 창에 사용자를 표시합니다. 확인을 선택하십시오.
  5. 사용자 이름을 입력하고 허용에서 모든 권한 확인란을 선택하십시오.

0

드라이브에 대한 액세스 권한을 확인하십시오. 먼저 하나의 폴더를 만들고 폴더 속성으로 이동하십시오.

보안 탭을 찾을 수 있습니다. 해당 사용자 ID에 액세스 권한이 있는지 확인하십시오.

아이디를 찾지 못한 경우 추가 버튼을 클릭하고 사용자 이름을 모든 권한으로 부여하십시오.


0

이 폴더를 공유하고 UNC 경로를 사용하십시오 (예 : \ pc \ backups \ mydb.bak).

그런 다음 공유를 중지 할 수 있습니다.

매우 우아하지는 않지만 모든 권한 문제를 해결합니다 (위에서 언급 한 것처럼 공유 권한도 부여해야 함)


0

.BAK 파일이 BitLocker로 암호화 된 폴더에 임시 저장되었을 때이 문제가 발생했습니다. 다른 폴더로 이동 한 후 암호화를 유지했습니다.

NETWORK SERVICE 계정이 파일을 해독 할 수 없었으며이 정보를 제공하는 철저한 오류 메시지가 표시되었습니다.

.BAK 파일에서 "파일 속성에서"데이터를 보호하기 위해 내용을 암호화하여 "를 선택 취소하여 BitLocker 암호화를 제거하면 문제가 해결되었습니다.


0

같은 오류가 있습니다. 다음과 같이 변경하면이 문제를 해결하는 데 도움이되었습니다.

서버 관리자-> 도구-> 서비스를 확인하고 서비스에 대한 사용자 ( "로그온"열)를 찾아야했습니다. SQL Server (SQLEXPRESS).

로컬 폴더 (C : \ Users \ Me \ Desktop \ Backup)로 이동하여 쓰기 권한을 부여 할 사용자로 "NT Service \ MSSQL $ SQLEXPRESS"를 추가했습니다.


0

안녕하세요, 다음에서 검색어를 변경해야합니다.

BACKUP DATABASE AcinsoftDB
TO DISK = 'C:\Users\Me\Desktop\Backup\MyDB.Bak'

BACKUP DATABASE AcinsoftDB
TO DISK = N'C:\Users\Me\Desktop\Backup\MyDB.Bak'

경로 앞에 N을 추가해야합니다.


0

필자의 경우 백업 파일 이름을 잊어 버렸고 동일한 권한 오류가 계속 발생했습니다.

TO DISK N'{path}\WRITE_YOUR_BACKUP_FILENAME_HERE.bak'

0

다음 3 단계로 동일한 문제를 해결했습니다.

  1. 백업 파일을 올바르게 작동하는 다른 폴더 경로에 저장합니다.
  2. 아래 그림과 같이 다른 보안 탭 두 폴더를 봅니다.
  3. 제대로 작동하지 않는 보안 탭 폴더의 편집 권한

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.