Condividi tramite


SQL Server 2014 Express LocalDB

Microsoft SQL Server 2014 Express LocalDB è una modalità di esecuzione di SQL Server Express destinata agli sviluppatori di programmi. LocalDBl'installazione copia un set minimo di file necessari per avviare il motore di database SQL Server. Una volta LocalDB installato, gli sviluppatori avviano una connessione usando una stringa di connessione speciale. Quando ci si connette, l'infrastruttura di SQL Server necessaria viene creata e avviata automaticamente, consentendo all'applicazione di usare il database senza attività di configurazione complesse o di tempo. Con Strumenti di sviluppo gli sviluppatori dispongono di un motore di database di SQL Server che consente di scrivere e verificare il codice Transact-SQL senza dover gestire un'istanza del server completa di SQL Server. Un'istanza di SQL Server ExpressLocalDB viene gestita usando l'utilitàSqlLocalDB.exe. LocalDB SQL Server Express deve essere usato al posto della funzionalità dell'istanza utente SQL Server Express deprecata.

Installazione di LocalDB

Il metodo primario di installazione LocalDB consiste nell'usare il programma di SqlLocalDB.msi. LocalDBè un'opzione quando si installa uno SKU di SQL Server 2014 Express. Selezionare LocalDB nella pagina Selezione funzionalità durante l'installazione di SQL Server Express. È possibile installare solo un file LocalDB binario per ogni versione principale SQL Server motore di database. È possibile avviare più processi del motore di database e in tutti verranno usati gli stessi file binari. Un'istanza del motore di database SQL Server avviata con LocalDB le stesse limitazioni di SQL Server Express

Descrizione

Il LocalDB programma di installazione usa il programma di SqlLocalDB.msi per installare i file necessari nel computer. Una volta installato, LocalDB è un'istanza di SQL Server Express che può creare e aprire database SQL Server. I file del database di sistema per il database sono archiviati nel percorso locale AppData degli utenti che generalmente è nascosto. Ad esempio C:\Users<\user>\AppData\Local\Microsoft\Microsoft SQL Server Database locale\Istanze\LocalDBApp1\. I file di database utente vengono archiviati in cui l'utente designa, in genere da qualche parte nella cartella C:\Users\<user>\Documents\ .

Per altre informazioni sull'inclusione LocalDB in un'applicazione, vedere panoramica dei dati locali di Visual Studio, Procedura dettagliata: Creazione di un database localDB SQL Server e Procedura dettagliata: Connessione ai dati in un database localDB (SQL Server Windows Forms) di Visual Studio.

Per altre informazioni sull'API, vedere SQL Server Express Informazioni di riferimento sull'API dell'istanza di LocalDB e Sulla funzione LocalDBStartInstance.LocalDB

L'utilità SqlLocalDb può creare nuove istanze di LocalDB, avviare e arrestare un'istanza di LocalDBe include opzioni che consentono di gestire LocalDB. Per altre informazioni sull'utilità SqlLocalDb, vedere Utilità SqlLocalDB.

Le regole di confronto dell'istanza per LocalDB è impostata su SQL_Latin1_General_CP1_CI_AS e non possono essere modificate. Le regole di confronto a livello di database, di colonna e di espressione sono supportate normalmente. Ai database indipendenti vengono applicate le regole di confronto dei metadati e di tempdb definite da Contained Database Collations.

Restrizioni

LocalDB non può essere un sottoscrittore di replica di tipo merge.

LocalDB non supporta FILESTREAM.

LocalDB consente solo code locali per Service Broker.

Un'istanza di proprietà degli account predefiniti, ad esempio NT AUTHORITY\SYSTEM, può avere problemi di gestibilità a causa del LocalDB reindirizzamento del file system windows; Usare invece un normale account windows come proprietario.

Istanze denominate e automatiche

LocalDB supporta due tipi di istanze: istanze automatiche e istanze denominate.

  • Le istanze automatiche di LocalDB sono pubbliche. Vengono create e gestite automaticamente per l'utente e possono essere usate da qualsiasi applicazione. Esiste un'istanza automatica di LocalDB per ogni versione di LocalDB installata nel computer dell'utente. Le istanze automatiche di LocalDB forniscono la gestione di istanze senza problemi. Non c'è necessità di creare l'istanza in quanto già funziona. In tal modo è possibile migrare e installare e l'applicazione con facilità in un computer diverso. Se nel computer di destinazione è installata la versione specificata di LocalDB, l'istanza automatica di LocalDB per quella versione è disponibile anche sul computer di destinazione. Le istanze automatiche di hanno un modello speciale per il nome dell'istanza LocalDB che appartiene a uno spazio dei nomi riservato. Ciò impedisce conflitti di nomi con istanze denominate di LocalDB. Il nome per l'istanza automatica è MSSQLLocalDB.

  • Le istanze denominate di LocalDB sono private. Sono di proprietà di una sola applicazione, responsabile della creazione e della gestione dell'istanza. Le istanze denominate forniscono l'isolamento dalle altre istanze e possono migliorare le prestazioni riducendo la contesa di risorse con altri utenti del database. Le istanze denominate devono essere create in modo esplicito dall'utente tramite l'API di gestione o in modo implicito tramite il LocalDB file app.config per un'applicazione gestita (anche se l'applicazione gestita può usare l'API, se necessario). Ogni istanza denominata di LocalDB ha una versione associata LocalDB che punta al rispettivo set di LocalDB file binari. Il nome dell'istanza di un è sysname tipo LocalDB di dati e può avere fino a 128 caratteri. Ciò è diverso dalle istanze denominate regolari di SQL Server, che limita i nomi ai nomi NetBIOS regolari di 16 caratteri ASCII. Il nome di un'istanza di può contenere tutti i caratteri Unicode legali all'interno di LocalDB un nome file. Un'istanza denominata che utilizza un nome dell'istanza automatica diventa un'istanza automatica.

I diversi utenti di un computer possono avere istanze con lo stesso nome. Ogni istanza è un processo diverso in esecuzione come utente diverso.

Istanze condivise di LocalDB

Per supportare scenari in cui più utenti del computer devono connettersi a una singola istanza di , LocalDB supporta la condivisione di LocalDBistanze. Il proprietario di un'istanza può decidere di consentire agli altri utenti del computer di connettersi all'istanza. È possibile condividere sia istanze automatiche che denominate di LocalDB . Per condividere un'istanza di LocalDB, un utente ne seleziona un nome condiviso (alias). Poiché il nome condiviso è visibile a tutti gli utenti del computer, questo nome condiviso deve essere univoco nel computer. Il nome condiviso per un'istanza di LocalDB ha lo stesso formato dell'istanza denominata di LocalDB.

Solo un amministratore nel computer può creare un'istanza condivisa di LocalDB. Un'istanza condivisa di LocalDB può essere non condivisa da un amministratore o dal proprietario dell'istanza condivisa di LocalDB. Per condividere e annullare la condivisione di un'istanza di LocalDB, usare i LocalDBShareInstance metodi e LocalDBUnShareInstance dell'API oppure le opzioni di condivisione e non condivise dell'utilità LocalDB SqlLocalDb.

Avvio e connessione a LocalDB

Connessione all'istanza automatica

Il modo più semplice da usare LocalDB consiste nel connettersi all'istanza automatica di proprietà dell'utente corrente usando la stringa di connessione "Server=(localdb)\MSSQLLocalDB;Integrated Security=true". Per connettersi a un database specifico usando il nome del file, usare una stringa di connessione simile a "Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf".

Nota

La prima volta che un utente in un computer tenta di connettersi a LocalDB, l'istanza automatica deve essere creata e avviata. Il tempo aggiuntivo necessario per la creazione dell'istanza può determinare un errore di tentativo di connessione generando un messaggio di timeout. In una situazione simile, attendere pochi secondi per consentire il completamento del processo di creazione, quindi riconnettersi.

Creazione e connessione alle istanze denominate

Oltre all'istanza automatica, LocalDB supporta anche istanze denominate. Usare il programma SqlLocalDB.exe per creare, avviare e arrestare un'istanza denominata di LocalDB. Per altre informazioni su SqlLocalDB.exe, vedere Utilità SqlLocalDB.

REM Create an instance of LocalDB  
"C:\Program Files\Microsoft SQL Server\120\Tools\Binn\SqlLocalDB.exe" create LocalDBApp1  
REM Start the instance of LocalDB  
"C:\Program Files\Microsoft SQL Server\120\Tools\Binn\SqlLocalDB.exe" start LocalDBApp1  
REM Gather information about the instance of LocalDB  
"C:\Program Files\Microsoft SQL Server\120\Tools\Binn\SqlLocalDB.exe" info LocalDBApp1  

Nell'ultima riga sopra indicata vengono restituite informazioni simili alle seguenti.

Nome "LocalDBApp1"
Versione <Versione corrente>
Nome condiviso ""
Proprietario "<Utente di Windows>"
Creazione automatica No
State in esecuzione
Ultima ora inizio <Data e ora>
Nome pipe dell'istanza np:\\.\pipe\LOCALDB#F365A78E\tsql\query

Nota

Se l'applicazione usa una versione di .NET prima della versione 4.0.2, è necessario connettersi direttamente alla pipe denominata dell'oggetto LocalDB. Il valore del nome della pipe dell'istanza è la pipe denominata su cui è in ascolto l'istanza di LocalDB . La parte del nome della pipe dell'istanza dopo LOCALDB# cambierà ogni volta che viene avviata l'istanza di LocalDB . Per connettersi all'istanza di usando SQL Server Management Studio, digitare il nome della pipe dell'istanza nella casella Nome server della finestra di LocalDB dialogo Connetti al motore di database. Dal programma personalizzato è possibile stabilire una connessione all'istanza di usando una stringa di LocalDB connessione simile a SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");

Connessione a un'istanza condivisa di LocalDB

Per connettersi a un'istanza condivisa di LocalDB aggiungere .\ (punto + barra rovesciata) alla stringa di connessione per fare riferimento allo spazio dei nomi riservato per le istanze condivise. Ad esempio, per connettersi a un'istanza condivisa di denominata AppData usare una stringa di LocalDB connessione, (localdb)\.\AppData ad esempio parte della stringa di connessione. Un utente che si connette a un'istanza condivisa di LocalDB cui non è proprietario deve avere un'autenticazione di Windows o SQL Server l'account di accesso per l'autenticazione.

Risoluzione dei problemi

Per informazioni sulla risoluzione dei problemi, vedere Risoluzione dei problemiLocalDB SQL Server 2012 Express LocalDB.

Autorizzazioni

Un'istanza di SQL Server 2014 ExpressLocalDB è un'istanza creata da un utente per l'uso. Qualsiasi utente nel computer può creare un database usando un'istanza di LocalDB, archiviando i file nel proprio profilo utente ed eseguendo il processo con le proprie credenziali. Per impostazione predefinita, l'accesso all'istanza di LocalDB è limitato al proprietario. I dati contenuti in sono protetti dall'accesso LocalDB al file system ai file di database. Se i file di database utente vengono archiviati in un percorso condiviso, il database può essere aperto da chiunque disponga dell'accesso al file system a tale percorso usando un'istanza di LocalDB di cui è proprietario. Se i file di database si trovano in un percorso protetto, ad esempio la cartella dati utente, solo quell'utente e gli amministratori con accesso a quella cartella, possono aprire il database. I LocalDB file possono essere aperti solo da un'istanza di LocalDB alla volta.

Nota

LocalDB viene sempre eseguito nel contesto di sicurezza degli utenti; ovvero non LocalDB viene mai eseguito con le credenziali del gruppo dell'amministratore locale. Ciò significa che tutti i file di database usati da un'istanza LocalDB devono essere accessibili usando l'account Windows dell'utente proprietario, senza considerare l'appartenenza al gruppo Administrators locale.

Vedere anche

Utilità SqlLocalDB