Sql-Server
還原數據庫 - Linux 上的作業系統錯誤 5(拒絕訪問。)
我嘗試在 Ubuntu 16 伺服器上使用sqlcmd工具恢復 SQL Server 2017 Express 數據庫。
我的 SQL 命令是:
RESTORE DATABASE [xxxxx] FROM DISK = N'/home/xxxxxx/DBBackups/xxxx.bak' WITH NORECOVERY, MOVE 'xxxx_Data' TO '/var/opt/mssql/data/xxxxx.mdf', MOVE 'xxxx_Log' TO '/var/opt/mssql/data/xxxx_log.ldf'
錯誤資訊是:
BackupDiskFile::OpenMedia: 備份設備 ‘/home/xxxxxx/DBBackups/xxxxxxxx.bak’ 未能打開。作業系統錯誤 5(拒絕訪問。)。
使用本文中描述的
WITH MOVE
選項不起作用。更新
這是另一篇文章,仍然是訪問被拒絕錯誤。
該錯誤表明
mssql
沒有讀取備份文件的權限。您可以通過以下範例授予其他使用者(文件的現有所有者或組以外的使用者)對備份文件的讀取權限chmod
。這將允許mssql
守護程序使用者讀取備份文件以進行恢復。sudo chmod o+r /home/xxxx/DBBackups/xxxx.bak
關於您的評論:
不知道為什麼微軟沒有給 mssql 訪問所有文件的權限
遵循最小權限的
mssql
安全原則,在安裝期間不會授予使用者超過其所需的權限。因此,預設情況下它不會對您的主目錄具有權限。