ไม่สามารถเปิดอุปกรณ์สำรอง ข้อผิดพลาดของระบบปฏิบัติการ 5


139

ด้านล่างนี้เป็นแบบสอบถามที่ฉันใช้เพื่อสำรองข้อมูล (สร้าง.bak) ฐานข้อมูลของฉัน

อย่างไรก็ตามทุกครั้งที่ฉันเรียกใช้ฉันจะได้รับข้อความแสดงข้อผิดพลาดนี้เสมอ:

ข่าวสารเกี่ยวกับ 3201 ระดับ 16 สถานะ 1 บรรทัด 1
ไม่สามารถเปิดอุปกรณ์สำรองข้อมูล 'C: \ Users \ Me \ Desktop \ Backup \ MyDB.Bak' ข้อผิดพลาดของระบบปฏิบัติการ 5 (การเข้าถึงถูกปฏิเสธ)

ข่าวสารเกี่ยวกับ 3013, ระดับ 16, สถานะ 1,
ฐานข้อมูลการสำรองข้อมูล1 บรรทัดจะสิ้นสุดลงอย่างผิดปกติ

นี่คือคำถามของฉัน:

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 Face: คุณต้องอ่านไฟล์ SQL ผ่านเครือข่ายท้องถิ่นไม่ใช่เครือข่าย ดังนั้นหมายความว่าคุณจะต้องย้ายไฟล์ SQL จากเครือข่ายไปยังไดรฟ์ในเครื่องของคุณก่อนแล้วจึงกู้คืน
mrjimoy_05

คำตอบ:


235

ใช่ฉันเพิ่งได้คะแนนนี้

ดูในบริการของ Windows เริ่ม> การดูแลระบบ> บริการ

ค้นหาบริการในรายการที่เรียกว่า: SQL Server (MSSQLSERVER) ค้นหาคอลัมน์ "เข้าสู่ระบบในฐานะ" (จำเป็นต้องเพิ่มหากไม่มีอยู่ในรายการ)

นี่คือบัญชีที่คุณต้องให้สิทธิ์กับไดเรกทอรีคลิกขวาใน explorer> Properties> Shares (and Security)

หมายเหตุ : อย่าลืมให้สิทธิ์กับไดเรกทอรีจริงและเพื่อแบ่งปันหากคุณกำลังข้ามเครือข่าย

ใช้และรอสิทธิ์ในการเผยแพร่ลองสำรองอีกครั้ง

หมายเหตุ 2 : หากคุณสำรองข้อมูลข้ามเครือข่ายและ SQL ของคุณกำลังทำงานเป็น "Local Service" คุณมีปัญหา ... คุณสามารถลองกำหนดสิทธิ์หรืออาจจะง่ายกว่าในการสำรองข้อมูลภายในเครื่องและ xcopy ผ่านนอก SQL Server ( หนึ่งชั่วโมงต่อมา).

หมายเหตุ 3 : หากคุณใช้งานเป็นบริการเครือข่าย SOMETIMES เครื่องระยะไกลจะไม่รู้จักบริการเครือข่ายบน SQL Server ของคุณ หากเป็นกรณีนี้คุณต้องเพิ่มการอนุญาตสำหรับคอมพิวเตอร์ตัวจริงเช่น MyServer $


20
สิทธิ์ / เพิ่ม / ขั้นสูงไม่พบผู้ใช้ในรายการ แต่ฉันวางใน "NT Service \ MSSQLSERVER" และทำงานเหมือนแชมป์
ทำเครื่องหมาย A

3
การเพิ่ม 'อนุญาตให้ทุกคน' ลงในโฟลเดอร์นี้ครอบคลุมหรือไม่?
DevDave

3
ขึ้นอยู่กับว่าถ้ามันเป็นสาธารณะอย่างแท้จริงไม่ได้ตรวจสอบแล้วใช่ หากเป็น "การรับรองความถูกต้อง" ใด ๆ แล้วบริการท้องถิ่นบนเครื่องระยะไกลมักจะไม่ผ่านการรับรอง ... แต่คุณต้องการให้ทุกคนเข้าถึงหรือไม่สำหรับเราที่เป็นความผิดที่อยู่ใกล้เคียง
Robin Vessey

1
ไม่ได้ผลสำหรับฉันและฉันแค่สำรองข้อมูลไว้ที่ C: \ temp \ หน้าจอการอนุญาตโฟลเดอร์จะไม่จดจำการเข้าสู่ระบบที่ใช้โดยบริการNT Service \ MSSQLSERVERแม้เมื่อวางตามที่แนะนำ @ Mark A มีบัญชีอื่นที่ดีสำหรับการใช้บริการนั้นหรือไม่?
MGOwen

8
ใช้งานได้สำหรับฉันทางออกที่ยอดเยี่ยม! ฉันใช้ SQL Server Express 2014 ดังนั้นคุณจะต้องให้สิทธิ์เขียนกับ 'NT Service \ MSSQL $ SQLEXPRESS'
mikhail-t

11

ไปที่โฟลเดอร์เซิร์ฟเวอร์ SQL ในเมนูเริ่มและคลิกเครื่องมือกำหนดค่าเลือกตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL บนบริการเซิร์ฟเวอร์ SQL บนอินสแตนซ์ที่ต้องการเปลี่ยน (เข้าสู่ระบบเป็น) เป็นระบบภายในเครื่อง


7

บัญชีบริการ SQL Server ไม่มีสิทธิ์เขียนไปยังโฟลเดอร์ C:\Users\Kimpoy\Desktop\Backup\


22
ฉันจะให้สิทธิ์บัญชีบริการเซิร์ฟเวอร์ SQL เพื่อเข้าถึงโฟลเดอร์นี้ได้อย่างไร :)
ยิ้ม

6

ฉันมีปัญหานี้เมื่อเร็ว ๆ นี้เช่นกัน แต่ฉันกำลังเรียกใช้งานการสำรองข้อมูลจากเซิร์ฟเวอร์ A แต่ฐานข้อมูลที่ถูกสำรองอยู่บนเซิร์ฟเวอร์ B ไปยังไฟล์ที่แชร์บนเซิร์ฟเวอร์ C เมื่อตัวแทนบนเซิร์ฟเวอร์ A บอกเซิร์ฟเวอร์ B ให้ทำการสำรองข้อมูล คำสั่ง -sql จริงๆแล้วมันเป็นบัญชีบริการที่ sql กำลังทำงานอยู่บนเซิร์ฟเวอร์ B ที่พยายามเขียนข้อมูลสำรองไปยังเซิร์ฟเวอร์ C

เพียงจำไว้ว่าบัญชีบริการของเซิร์ฟเวอร์ sql ที่ดำเนินการคำสั่งแบ็คอัพฐานข้อมูลจริงคือสิ่งที่ต้องการสิทธิพิเศษในระบบไฟล์ไม่ใช่เอเจนต์


4

ฉันเพิ่งจะผ่านสิ่งนี้ไปเอง ฉันมั่นใจว่าผู้ใช้งานเข้าสู่ระบบ MSSQLSERVER ของฉันมีfull accessแต่ก็ยังทำให้เกิดปัญหา ใช้งานได้เมื่อฉันย้ายปลายทางไปที่รูทของ C ที่สำคัญกว่านั้นออกจากโฟลเดอร์ผู้ใช้ (แม้ว่าฉันจะมีการแชร์ด้วยสิทธิ์แบบเต็ม - แม้แต่ลอง "ทุกคน" เป็นการทดสอบ)

ฉันไม่ทราบว่าฉันพิจารณาปัญหาของฉันว่า "คงที่" แต่มันก็ "ทำงาน"

เป็นเพียง FYI สำหรับผู้ใช้อื่น ๆ ที่เข้ามาในเธรดนี้


1
ฉันคิดว่าสิ่งนี้เกิดจากโดเมนองค์กรที่มีเส้นทางผู้ใช้ที่อยู่ในไดรฟ์เครือข่ายเพื่อให้ผู้ใช้สามารถเข้าถึงได้อย่างโปร่งใสโดยไม่คำนึงถึงเครื่องที่พวกเขาลงชื่อเข้าใช้ เช่นสถานการณ์นี้: superuser.com/a/730519
Bon

@Bon ขอบคุณ! ปัญหานี้แยกออกสำหรับฉัน เส้นทางที่ฉันมีไฟล์สำรองข้อมูลเป็นเส้นทางเครือข่ายจริง ๆ
JonM

4

ฉันประสบปัญหาเดียวกันกับ SQL Express 2014 SP1 บน Windows 10

วิธีแก้ปัญหาที่ใช้งานได้

  1. เปิดบริการโดยพิมพ์บริการ
  2. ค้นหาและเปิด SQL Server (SQLExpress)
  3. ไปที่แท็บ LogOn
  4. เลือกบัญชี Local System (ตรวจสอบเพื่อให้อนุญาตบริการเพื่อโต้ตอบกับเดสก์ท็อป)
  5. คลิกตกลง หยุดบริการ เริ่มบริการใหม่
  6. แก้ไขปัญหา

3

ในการค้นหาผู้ใช้ที่คุณต้องให้สิทธิ์ในการทำกระบวนการกู้คืนคุณสามารถทำตามขั้นตอนต่อไปนี้

คุณต้องไปที่เซิร์ฟเวอร์ของคุณที่ติดตั้ง SQL Server ค้นหาเครื่องมือจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL

ป้อนคำอธิบายรูปภาพที่นี่

ถัดไปคุณต้องไปที่ "บริการเซิร์ฟเวอร์ SQL"

ป้อนคำอธิบายรูปภาพที่นี่

ภายใต้อินสแตนซ์ SQL Server (MSSQLSERVER) ของคุณจะมีบัญชีพร้อมคอลัมน์ "Logon As" ในกรณีของฉัน บริการ NT \ MSSQLSERVER

นั่นคือบัญชีที่คุณต้องเพิ่มในแท็บความปลอดภัยของตำแหน่ง. bak ของคุณและให้สิทธิ์ผู้ใช้ "อ่าน" เพื่อให้สามารถอ่านไฟล์สำรองได้

สมมติว่าไฟล์สำรองของคุณมีอยู่ที่โฟลเดอร์ "D: \ Shared" จากนั้นคุณต้องให้สิทธิ์เช่นนี้:

ป้อนคำอธิบายรูปภาพที่นี่


2

ฉันมีปัญหาที่คล้ายกัน ฉันเพิ่มสิทธิ์ในการเขียนลงในไฟล์. bak เองและโฟลเดอร์ของฉันที่ฉันกำลังเขียนข้อมูลสำรองสำหรับผู้ใช้ NETWORK SERVICE หากต้องการเพิ่มการอนุญาตให้คลิกขวาไฟล์ / ไดเรกทอรีที่คุณต้องการแก้ไขเลือกแท็บความปลอดภัยและเพิ่มผู้ใช้ / การอนุญาตที่เหมาะสมที่นั่น


1
คุณหมายถึงอะไรตามความเหมาะสม
Steam

2

นี่คือสิ่งที่ฉันทำโดยผ่านปัญหา

1) ไปที่การสำรองข้อมูล

2) ลบไฟล์พา ธ ปลายทางไปยังดิสก์

3) คลิกที่เพิ่ม

4) ในช่องชื่อไฟล์: พิมพ์ชื่อสำรองด้วยตนเองหลังจาก .. \ backup เหมือนด้านล่างโดยที่ Yourdb.bak เป็นชื่อสำรองฐานข้อมูล

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

5) คลิกที่ตกลง

หวังว่านี่จะช่วยได้!


2

สาเหตุหนึ่งที่ทำให้เกิดเหตุการณ์นี้คือคุณกำลังเรียกใช้บริการ MSSQLSERVER ของคุณที่ไม่ได้ใช้ระบบโลคัล เมื่อต้องการแก้ไขปัญหานี้ใช้ขั้นตอนต่อไปนี้

  1. เปิดใช้งานโดยใช้ Windows + R
  2. พิมพ์ services.msc และกล่องโต้ตอบบริการจะเปิดขึ้น
  3. ค้นหา SQL Server (MSSQLSERVER)
  4. คลิกขวาและคลิกที่คุณสมบัติ
  5. ไปที่แท็บเข้าสู่ระบบ
  6. เลือกบัญชี Local System และคลิกที่ "สมัคร" และ "ตกลง"
  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

คลิกขวา -> Properties -> Security ->

เพิ่มบัญชีบริการและให้สิทธิ์ในการอ่าน / เขียน สิ่งนี้จะแก้ไขปัญหา


0

ฉันมีปัญหาเดียวกันและ URL ด้านล่างช่วยฉันได้จริงๆ

มันอาจช่วยคุณได้เช่นกัน

http://blog.sqlauthority.com/2011/04/13/sql-server-fix-error-msg-3201-level-16-cannot-open-backup-device-operating-system-error-5access-is- ปฏิเสธ /


6
คุณควรพยายามตอบคำถามที่อธิบายว่าบทความนี้ช่วยคุณได้อย่างไร
Ali Samii

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 ผู้ใช้ของคุณมีการเข้าถึงหรือไม่

หากไม่พบ ID ของคุณโปรดคลิกปุ่มเพิ่มและให้ชื่อผู้ใช้พร้อมการเข้าถึงแบบเต็ม


0

แชร์โฟลเดอร์นี้และใช้เส้นทาง UNC โดยตัวอย่าง: \ pc \ backups \ mydb.bak

จากนั้นคุณสามารถหยุดการแบ่งปัน

ไม่สวยงามมาก แต่จะแก้ไขปัญหาการอนุญาตทั้งหมด (คุณต้องให้สิทธิ์ในการแชร์เช่นกัน


0

ฉันประสบปัญหานี้เมื่อไฟล์. BAK ถูกเก็บไว้ชั่วคราวในโฟลเดอร์ที่เข้ารหัสด้วย BitLocker มันคงการเข้ารหัสหลังจากที่ถูกย้ายไปยังโฟลเดอร์อื่น

บัญชี NETWORK SERVICE ไม่สามารถถอดรหัสไฟล์และให้ข้อความแสดงข้อผิดพลาดอย่างละเอียด

การลบการเข้ารหัส BitLocker (โดยยกเลิกการเลือก "เข้ารหัสเนื้อหาเพื่อรักษาความปลอดภัยข้อมูล" ในคุณสมบัติไฟล์) ในไฟล์. BAK เพื่อแก้ไขปัญหา


0

ฉันมีข้อผิดพลาดเดียวกัน การเปลี่ยนแปลงต่อไปนี้ช่วยให้ฉันแก้ไขปัญหานี้ได้

ฉันต้องตรวจสอบ Server Manager-> Tool-> Services และค้นหาผู้ใช้ ("Log On As" คอลัมน์) เพื่อรับบริการ: 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.