Restaurarea bazei de date – Eroare de sistem de operare 5(Accesul este refuzat.) pe Linux (Administrarea bazelor de date, Server Sql, Restore, Linux, Sql Server 2017)

yW0K5o a intrebat.
a intrebat.

Î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.

1 răspunsuri
Dan Guzman

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.