Не удается открыть устройство резервного копирования «/var/opt/mssql/backup/MyDB.bak». Ошибка операционной системы 5 (доступ запрещен.) - PullRequest
0 голосов
/ 16 января 2020

Я обнаружил много случаев, когда люди пытаются открыть файл вне контейнера docker. Но мое явно внутри.

Я получаю следующее сообщение:

$ /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "mypw" -Q 
"RESTORE FILELISTONLY FROM DISK = '/var/opt/mssql/backup/MyDB.bak'"
Msg 3201, Level 16, State 2, Server 1c7bf85afdaf, Line 1
Cannot open backup device '/var/opt/mssql/backup/MyDB.bak'. Operating system error 5(Access is denied.).
Msg 3013, Level 16, State 1, Server 1c7bf85afdaf, Line 1
RESTORE FILELIST is terminating abnormally.

То же самое происходит, когда я пытаюсь восстановить базу данных. Любая идея, что идет не так?

У меня есть ощущение, что это могут быть некоторые вещи разрешения, где нужно изменить разрешения для файла

$ ls -la var/opt/mssql/backup/MyDB.bak
-rw-r----- 1 501 dialout 3395584 Jan 16 02:12 var/opt/mssql/backup/MyDB.bak

1 Ответ

0 голосов
/ 17 января 2020

Решением было изменение разрешения файла. Мне нужно было сделать:

docker exec -it -u root MicrosoftSQLServer "bash"

Затем сменить пользователя (whoami возвращает mssql, когда я запускаю контейнер docker не как root)

chown mssql /var/opt/mssql/backup/TestDB.bak

И тогда это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...