Sto cercando di installare il database AdventureWorks 2012 in sql server 2012. Ho ottenuto il file mdf da questo link - http://msftdbprodsamples.codeplex.com/releases/view/93587
Ecco il nome del file che ho scaricato - AdventureWorks2012_Database.Zip
Sto facendo tutto questo su Windows 7 64 bit.
Ottengo l'errore qui sotto:
Attach database failed for Server 'SuperPC\SQL2012'. (Microsoft.SqlServer.Smo)
For help, click: http://go.Microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=11.0.2100.60+((SQL11_RTM).120210-1917+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Attach+database+Server&LinkId=20476
ADDITIONAL INFORMATION:
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
Unable to open the physical file "C:\Databases\AdventureWorks2012_Data.mdf". Operating system error 5: "5(Access is denied.)". (Microsoft SQL Server, Error: 5120)
For help, click: http://go.Microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=11.00.2100&EvtSrc=MSSQLServer&EvtID=5120&LinkId=20476
Il motivo del problema - Inserimento dei file mdf e ldf del database in una directory all'esterno della cartella di installazione del server SQL "ufficiale".
Soluzione -
http://tryingmicrosoft.com/error-while-attaching-a-database-to-sql-server-2008-r2/
Incolla il tuo file .mdf e il file ldf in questa directory - C:\Programmi\Microsoft SQL Server\MSSQL11.SS2012\MSSQL\DATA
Soluzioni che NON hanno risolto il problema -
1 - Sblocco dei file compressi. Controlla anche che i file mdf e ldf siano Non bloccati. (Passaggi - clic con il tasto destro del mouse sul file zip> proprietà> sblocco)
2 - Eseguire SSMS 2012 come amministratore.
3 - Esegui una query SQL del modulo -
CREATE DATABASE MyAdventureWorks
ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'),
(FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf')
FOR ATTACH;
Opzioni
1. Spostare .mdf e .ldf nella directory di installazione SQLServer\Data\cartella (Ad es. C:\Programmi (x86)\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA)
2. Esegui SQL Server Management Studio come amministratore
3. Aggiungere i diritti all'utente di SQL Server alla directory a cui è necessario accedere. Non ero sicuro di quale utente fosse corretto ma sono riuscito a farlo funzionare dando all'account "[PCNAME]\Users" l'accesso completo alla cartella.
Passaggi
Cartella clic destro. Seleziona Proprietà. Seleziona la scheda "Sicurezza". Clic "Modificare". Seleziona "Utenti ([PCNAME]\Utenti)" ad es. Se il nome del pc era mycomp quindi sarebbe "Users (mycomp\Users)"
Fai clic sulla casella di controllo "Consenti" accanto a "Controllo completo" in "Autorizzazioni Per utenti"
Vedi qui per maggiori dettagli per le opzioni 1 e 2 ..
Ho cambiato le autorizzazioni e questo ha funzionato per me: Sicurezza -> Avanzate. Aggiungi 'NT Service\MSSQLSERVER' e concedi l'accesso completo, disabilita l'ereditarietà , aggiungi te stesso per facilitare la risoluzione dei problemi. Fatelo su entrambi i file .mdf e .ldf.
Non è necessario spostare il file .mdf
. Basta fare clic destro sulla cartella in cui si trova il database e modificare le autorizzazioni di sicurezza. Ho dato utenti autenticati pieno controllo. Quindi ho eseguito lo script TSQL qui sotto per allegare il database:
CREATE DATABASE MyAdventureWorks
ON (FILENAME = 'C:\Adventureworks\AdventureWorks2012_Data.mdf'),
(FILENAME = 'C:\Adventureworks\AdventureWorks2012_Log.ldf')
FOR ATTACH;
Come puoi vedere i miei file di database si trovano in una cartella chiamata Adventureworks
.
Errore 5 - Accesso negato - Viene dai vecchi tempi di DOS. Fondamentalmente, si tratta di un ACL - errore dell'elenco di controllo di accesso.
Puoi mettere i database ovunque ti piaccia a patto che l'account SQL SERVER SERVICE abbia accesso!
Non importa chi sei connesso come, è l'account di servizio che ha bisogno di accedere alla directory e ai file.
Non è necessario eseguire SSMS come amministratore. Ho collegato i database tutto il tempo senza questo passaggio.
Basta rimuovere il file di registro, se si sta creando il database per la prima volta allegando, che potrebbe aiutarti.
Stavo cercando di creare un database allegando e ho continuato a ottenere uno screenshot simile
Grazie all'articolo che ho trovato e ho appena dovuto rimuovere il log, era ovvio, ma MS non ha offerto di non mostrare da soli per i nuovi database. Esperienza molto brutta, non sono sicuro se è simile per i prodotti con licenza server SQL.
http://exacthelp.blogspot.in/2012/12/unable-to-open-physical-file-operating.html
Passaggi per collegare il database AdventureWorks2012 al database MSSQL locale:
Soluzione 1: Se si dispone di spazio sufficiente in C:\Drive in Windows e si desidera creare il database in C:\Drive
2.Fare clic su "Database" nell'Explorer dell'oggetto e selezionare "Allega"
3. Nella finestra di dialogo Allega database, fare clic sul pulsante "Aggiungi" nel database per allegare: campo.
5.Ora il database 'AdventureWorks2012' viene creato in SQL Sever.
Soluzione 2: Se non si dispone di spazio sufficiente in C:\Drive in Windows
1.Collegare al server locale selezionando il nome del server XXX\SQLEXPRESS e Autenticazione - 'Autenticazione Windows'
2.Fare clic su "Database" nell'Explorer dell'oggetto e selezionare "Allega"
3. Nella finestra di dialogo Allega database, fare clic sul pulsante "Aggiungi" nel database per allegare: campo.
Passare al percorso file MDF per es. F:\AdventureWorks2012_Database\AdventureWorks2012_Data.mdf e fare clic su "OK" nella parte inferiore della finestra di dialogo "Allega database".
Questo genererà il seguente messaggio di errore: 'Si è verificato un errore durante il collegamento dei database. Fare clic sul collegamento ipertestuale nella colonna Messaggio per i dettagli. '
La soluzione è:
i) Fare clic con il tasto destro sulla cartella AdventureWorks2012_Data, selezionare Proprietà.
ii) fare clic sulla scheda "Sicurezza"
iii) Selezionare Utenti (xxx\Utenti) nella sezione "Gruppi o nomi utente:"
iv) Fai clic sul pulsante "Modifica"
v) Seleziona Utenti (xxx\Utenti) nel 'Gruppo o nomi utente:' nel popup,
vi) Selezionare la casella di controllo "Controllo completo" nella sezione "Autorizzazioni per gli utenti".
vii) Fare clic su ok e ok.
Ora torna alla schermata Allegati database di SQLsevers, fare clic sul pulsante "Aggiungi" nel database per allegare: campo.
Passare al percorso file MDF ad es. F:\AdventureWorks2012_Database\AdventureWorks2012_Data.mdf e fare clic su "OK" nella parte inferiore della finestra di dialogo "Allega database".
Ora il database "AdventureWorks2012" è stato creato in SQL Sever.
Mi rendo conto che questa è una vecchia domanda, ma per me c'erano due requisiti per collegare un database outside la cartella predefinita:
NT SERVICE\MSSQL$INSTANCENAME
accesso completo alla cartellaPresumo che il # 1 non sia richiesto se il processo (SSMS) è elevato.
Grazie per i suggerimenti precedenti. Non è necessario spostare i file di database nella directory del server SQL o eliminare il file di registro del database. Invece, si concede semplicemente l'autorizzazione Controllo completo per entrambi i file .MDF e .LDF per gli utenti autenticati. In questo modo collego correttamente entrambi i database di esempio AdventureWorks2012 e AdventureWorksLT2012 in SQL Server Management Studio (SSMS).
Ho risolto questo problema scaricando le opere di Adventure da questo sito
http://msftdbprodsamples.codeplex.com/downloads/get/723031
Nota quando si scarica un'avventura funziona la cartella Zip, assicurarsi che il file sia aggiunto con _data e.g AdventureWorks2012_Data.Zip poiché questo file contiene sia i file .mdf che .ldf.
Dopo averlo scaricato, estrai il contenuto della cartella in questo url sul tuo computer C:\Programmi\Microsoft SQL Server\MSSQL11. ***\MSSQL\DATA. Nel server SQl, accedere a Esplora oggetti e fare clic con il tasto destro del mouse sui database per allegare il database. Nella finestra di dialogo Allega, selezionare Adve ******** .mdf. Tutto ciò che dovrebbe andar bene da qui.
Spero che questo possa essere d'aiuto.
Ho avuto lo stesso problema durante il tentativo di creare un nuovo database con impostazioni personalizzate da ASP.NET MVS e ho perso alcune ore per risolverlo. Finalmente la mia soluzione era quella di entrare nelle opzioni di cartella/sicurezza della mia cartella App_Data. Quindi ho aggiunto un account "utenti autenticati" e gli ho dato il controllo completo. E questo era tutto. La mia applicazione funziona bene ..
basta aggiungere l'utente corrente alla scheda di sicurezza con il pieno controllo e rieseguire la query atttach
Se hai accesso ai file/cartelle del server puoi provare questa soluzione che ha funzionato per me:
SQL Server 2012 su Windows Server 2008 R2
in realtà è abbastanza facile. Basta rinominare i file . Non c'è bisogno di spostare, aggiungere le autorizzazioni eseguite come qualsiasi ...
NOTA: Windows 7 Pro, SQL 2012
Dopo aver usato DiskManager.msc
, ho dovuto aggiungere machine_name\SERVICE
con il pieno controllo di entrambi i file .mdf
e .ldf
.
Il mio computer portatile è Borris quindi:
Non sono sicuro del motivo per cui cambiare le lettere di unità resettare i miei permessi, ma ha fatto su Windows inserire qui la descrizione dell'immagine