Încerc să restaurez baza de date SQL Server 2017 Express utilizând sqlcmd instrument pe serverul Ubuntu 16.
Comanda mea SQL este:
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'
Mesajul de eroare este:
BackupDiskFile::OpenMedia: Nu s-a reușit deschiderea dispozitivului de backup ‘/home/xxxxxx/DBBackups/xxxxxxxx.bak’. Eroare de sistem de operare 5(Accesul este refuzat.).
Folosind WITH MOVE
opțiunea descrisă în această postare nu funcționează.
UPDATE
Iată o altă post și tot eroare de Acces refuzat.
Eroarea indică mssql
nu are permisiuni pentru a citi fișierul de backup. Puteți acorda altor utilizatori (alți utilizatori decât proprietarul sau grupul existent al fișierului) acces de citire la fișierul de backup cu ajutorul comenzii chmod
exemplul de mai jos. Acest lucru va permite mssql
utilizatorului daemon să citească fișierul de rezervă pentru restaurare.
sudo chmod o+r /home/xxxx/DBBackups/xxxx.bak
În ceea ce privește comentariul dumneavoastră:
Nu știu de ce Microsoft nu a acordat permisiuni mssql pentru a accesa toate fișierele
mssql
utilizator nu primește mai multe permisiuni decât are nevoie în timpul instalării, urmând principiul de securitate al celui mai mic privilegiu. În consecință, nu va avea permisiuni pentru directorul dvs. personal în mod implicit.