File .bak non visibile in nessuna directory in SSMS


46

Ho un file .bak creato oggi da qualcun altro, creato manualmente tramite SSMS 2008 R2. Sto cercando di ripristinare manualmente il database, purtroppo il file non viene visualizzato quando vado a sfogliarlo.

Riesco a scrivere il processo di ripristino, ma ho già visto questo problema e non sono sicuro di cosa potrebbe causare la mancata visualizzazione di .bak.


Scriverò uno script per il ripristino, voglio solo sapere cosa lo sta causando. È sicuramente un .bak, non un .bak.txt o altro.
Sean Long,

Quindi sei in grado di sfogliare la cartella in cui sai che il file è e non viene visualizzato? Oppure non riesci a navigare nella cartella?
Aaron Bertrand

Riesco a navigare nella cartella, ma non vedo nessuno dei file .bak. Ho controllato le autorizzazioni dell'utente con cui eseguo SSMS, sono un amministratore locale e il file non è contrassegnato come "nascosto" o altro.
Sean Long,

Puoi pubblicare una schermata da qualche parte, che mostra la vista della cartella di Windows Explorer e quella di SSMS? Spiega anche nella domanda il processo che stai utilizzando per arrivare a questo passaggio.
Aaron Bertrand

1
(Si noti inoltre che anche l'account del servizio SQL Server deve disporre delle autorizzazioni, non solo dell'utente SSMS. Sebbene ciò non dovrebbe impedire la visualizzazione dei file .bak nell'elenco prima di eseguire qualsiasi operazione con essi.)
Aaron Bertrand

Risposte:


39

Oggi abbiamo avuto lo stesso problema. Si è rivelato essere un problema di autorizzazioni, come illustrato in alcune delle altre risposte. La differenza è che l'account che dovevamo aggiungere era NT SERVICE\MSSQLSERVER.

Immagine dello schermo

Ho identificato l'account confrontando le autorizzazioni delle autorizzazioni predefinite della cartella Backup SQL con la cartella contenente il file di backup.

L'aggiunta dell'account del servizio non è così semplice come sembra. Ecco cosa ha funzionato per me. (Server 2012 R2)

  1. Accedi al server. (La modifica deve essere effettuata sul server effettivo, non attraverso una condivisione di rete.)
  2. Modificare le posizioni sul nome del server locale.
  3. Digita nella NT SERVICE\MSSQLSERVERcasella del nome. (Non fare clic su Controlla nomi)
  4. Clicca OK. Verrà quindi visualizzato un elenco degli account di servizio corrispondenti. Selezionare MSSQLSERVER e fare clic su OK per accettare la selezione.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Dovresti vedere l'account del servizio elencato nelle impostazioni di sicurezza e puoi modificare le autorizzazioni di conseguenza.

Dopo aver aggiunto le autorizzazioni (ho aggiunto Controllo completo, per abbinare la cartella di backup SQL predefinita.) E aver riavviato la console di gestione di SQL Server, sono stato in grado di selezionare e ripristinare il mio file di backup.


superuser.com/questions/248315/… ci dice come elencare gli account utente su un computer. Per qualsiasi servizio denominato s, esiste un account virtuale denominato NT Service\s, anche se il servizio non viene eseguito con tale account.
Tahir Hassan,

2
L'account che ho dovuto aggiungere era NT Service\MSSQL$SQLSERVER2014, forse perché ho chiamato la mia istanzaSQLSERVER2014
thinkOfaNumber

16

L'ho preso oggi.

Ho disattivato la condivisione dei file, l'indicizzazione e cancellato tutte le sessioni aperte (persone che hanno effettuato l'accesso per copiare i backup), ma il problema non è andato via.

Sono andato a Windows Explorer, ho copiato i backup in un'altra cartella e ho navigato in quella tramite Management Studio, e ho potuto vederlo lì.

Eliminata la cartella originale e ricreata, copiato di nuovo il contenuto, sfogliato i .bakfile ed è tornato alla normalità.

Spero che questo aiuti qualcuno.


1
mi ha aiutato! :)
Peter PitLock

5

Ho riscontrato questo problema un paio di volte. Il problema non è con SQL Server ma con l'autorizzazione di Windows della cartella. Devi aggiungere l'autorizzazione appropriata alla cartella in cui hai copiato il file .bak (credo System Networkruolo).

La soluzione più semplice è quella di spostare il file nella cartella di backup predefinita in Programmi. Ha tutte le autorizzazioni necessarie. Per SQL Server 2012 lo è

D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup

Questa è un'ottima soluzione perché non si stanno aprendo potenziali falle di sicurezza nel proprio computer solo per ripristinare un file.
Michael Potter,

funziona alla grande senza bisogno di politiche e cose
Marin

3

Ho anche riscontrato lo stesso problema oggi. Mi è stato dato un file di backup da ripristinare ma non mi era visibile durante la navigazione. Tuttavia, sono stato in grado di accedere al file system ma alla procedura guidata di ripristino mediante SQL Server management Studio.

Dopo aver speso alcuni ho scoperto che si tratta di un problema di autorizzazioni. Il servizio SQL Server è in esecuzione utilizzando Network Servicema l' Network Serviceaccount non disponeva delle autorizzazioni per accedere alla cartella. Dopo aver concesso le autorizzazioni a Network Service. Il file di backup era visibile per il ripristino.

Per i dettagli, consultare Blog .


2

Se riesci a trovarlo in Esplora risorse, dovresti scrivere un RESTORE DATABASEcomando invece di fare affidamento sulla GUI clunky per trovarlo per te. Chissà quale codice sta succedendo lì dentro e perché potrebbe non essere in grado di trovare il file - mi dispiace, ho solo una soluzione alternativa e non una soluzione.

Assicurati anche che il file sia in realtà qualcosa.bak e non qualcosa.bak.txt (Windows potrebbe nascondere "utile" l'estensione da te. Odio quel comportamento predefinito.)


1

Questo mi è successo oggi sulla mia scatola di sviluppo. Nel mio caso, l'account del servizio aveva le autorizzazioni per la cartella, ma il mio account utente no. Dopo aver concesso le autorizzazioni del mio account alla cartella, sono stato in grado di vedere i file .BAK.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.