Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az SQL Server Express Edition támogatja a felhasználói példány funkcióját, amely csak a .NET-keretrendszer SQL Server-adatszolgáltató (SqlClient) használatakor érhető el. A felhasználói példány az SQL Server Express Database Engine egy külön példánya, amelyet egy szülőpéldány hoz létre. A felhasználói példányok lehetővé teszik a helyi számítógépeken nem rendszergazdák számára, hogy SQL Server Express-adatbázisokat csatoljanak és csatlakozzanak. Minden példány az egyes felhasználók biztonsági környezetében fut, felhasználónkénti egypéldányos alapon.
Felhasználói példány képességei
A felhasználói példányok olyan felhasználók számára hasznosak, akik a Windowst a minimális jogosultságú felhasználói fiók (LUA) alatt futtatják. Minden felhasználó rendelkezik SQL Server-rendszergazdai (sysadmin) jogosultságokkal a számítógépen futó példányon anélkül, hogy Windows-rendszergazdaként kellene futnia. A korlátozott engedélyekkel rendelkező felhasználói példányon végrehajtó szoftverek nem végezhetnek rendszerszintű módosításokat, mert az SQL Server Express példánya a felhasználó nem rendszergazdai Windows-fiókja alatt fut, nem szolgáltatásként. Minden felhasználói példány el van különítve a szülőpéldánytól és az ugyanazon a számítógépen futó többi felhasználói példánytól. A felhasználói példányokon futó adatbázisok csak egyfelhasználós módban nyílnak meg, és több felhasználó nem csatlakozhat a felhasználói példányon futó adatbázisokhoz. A replikáció és az elosztott lekérdezések a felhasználói példányok esetében is le vannak tiltva.
Feljegyzés
A felhasználói példányokra nincs szükség azokhoz a felhasználókhoz, akik már rendszergazdák a saját számítógépükön, vagy több adatbázis-felhasználót érintő forgatókönyvekhez.
Felhasználói példányok engedélyezése
Felhasználói példányok létrehozásához az SQL Server Express szülőpéldányának futnia kell. A felhasználói példányok alapértelmezés szerint engedélyezve vannak az SQL Server Express telepítésekor, és explicit módon engedélyezhetik vagy letilthatják őket egy rendszergazda, aki végrehajtja a sp_configure rendszer által tárolt eljárást a szülőpéldányon.
-- Enable user instances.
sp_configure 'user instances enabled','1'
-- Disable user instances.
sp_configure 'user instances enabled','0'
A felhasználói példányok hálózati protokolljának helyi nevesített csöveknek kell lennie. A felhasználói példányok nem indíthatók el az SQL Server távoli példányán, és az SQL Server-bejelentkezések nem engedélyezettek.
Csatlakozás felhasználói példányhoz
A User Instance kulcsszavak és AttachDBFilenameConnectionString a kulcsszavak lehetővé teszik a SqlConnection felhasználói példányokhoz való csatlakozást. A felhasználói példányokat a tulajdonságok is támogatják SqlConnectionStringBuilderUserInstance.AttachDBFilename
Vegye figyelembe az alábbi kapcsolati sztring.
Data Source=.\\SQLExpress;Integrated Security=true;
User Instance=true;AttachDBFilename=|DataDirectory|\InstanceDB.mdf;
Initial Catalog=InstanceDB;
Ebben a kapcsolati sztring:
- A
Data Sourcekulcsszó a felhasználói példányt létrehozó SQL Server Express szülőpéldányára hivatkozik. Az alapértelmezett példány az .\sqlexpress. -
Integrated Securitybeállítás értéke :true. Felhasználói példányhoz való csatlakozáshoz Windows-hitelesítés szükséges; Az SQL Server-bejelentkezések nem támogatottak. - Ez
User Instancea beállítás egy felhasználói példányt meghívó értékre van állítvatrue. (Az alapértelmezett érték afalse.) - A
AttachDbFileNamekapcsolati sztring kulcsszó az elsődleges adatbázisfájl (.mdf) csatolására szolgál, amelynek tartalmaznia kell a teljes elérési utat.AttachDbFileNameis megfelel a "kiterjesztett tulajdonságok" és a "kezdeti fájlnév" kulcsok egy SqlConnection kapcsolati sztring. - A
|DataDirectory|csőszimbólumokban található helyettesítési sztring a kapcsolatot megnyitó alkalmazás adatkönyvtárára utal, és relatív elérési utat biztosít a .mdf és az .ldf adatbázis és naplófájlok helyéről. Ha máshol szeretné megtalálni ezeket a fájlokat, meg kell adnia a fájlok teljes elérési útját.
Feljegyzés
A kapcsolati sztring futásidőben történő létrehozásához használhatja a SqlConnectionStringBuilder.UserInstance és SqlConnectionStringBuilder.AttachDBFilename tulajdonságokat is.
Fontos
A Microsoft azt javasolja, hogy a legbiztonságosabb hitelesítési folyamatot használja. Ha azure SQL-hez csatlakozik, az Azure-erőforrások felügyelt identitásai az ajánlott hitelesítési módszer.
A |használataDataDirectory| Helyettesítési sztring
AttachDbFileName ADO.NET 2.0-s verziójában kiterjesztették a |DataDirectory| (csőszimbólumok közé zárt) helyettesítési sztring bevezetésével.
DataDirectoryaz adatfájlok relatív elérési útjának jelzésére AttachDbFileName szolgál, így a fejlesztők a teljes elérési út megadása helyett olyan kapcsolati sztring hozhatnak létre, amelyek az adatforrás relatív elérési útján alapulnak.
A fizikai hely, amely DataDirectory az alkalmazás típusától függ. Ebben a példában a csatolandó Northwind.mdf fájl az alkalmazás \app_data mappájában található.
Data Source=.\\SQLExpress;Integrated Security=true;
User Instance=true;
AttachDBFilename=|DataDirectory|\app_data\Northwind.mdf;
Initial Catalog=Northwind;
Használat esetén DataDirectory az eredményül kapott fájl elérési útja nem lehet magasabb a könyvtárszerkezetben, mint a helyettesítési sztring által mutatott könyvtár. Ha például a teljes kibontott DataDirectory érték C:\AppDirectory\app_data, akkor a fenti kapcsolati sztring minta működik, mert a c:\AppDirectory alatt van. Ha azonban megkísérli megadni DataDirectory|DataDirectory|\..\data , az hibát fog eredményezni, mert az \data nem az \AppDirectory alkönyvtára.
Ha a kapcsolati sztring helytelenül formázott helyettesítési sztringgel rendelkezik, a rendszer egy ArgumentException hibát fog dobni.
Feljegyzés
System.Data.SqlClient a helyettesítési sztringeket a helyi számítógép fájlrendszerének teljes elérési útjaira oldja fel. Ezért a távoli kiszolgáló, a HTTP és az UNC elérési út neve nem támogatott. Kivétel történik a kapcsolat megnyitásakor, ha a kiszolgáló nem a helyi számítógépen található.
A SqlConnection megnyitásakor átirányításra kerül az alapértelmezett SQL Server Express példányról egy, a futtatókörnyezet által indított példányra, amely a hívó fiókjával azonosított fiók alatt fut.
Feljegyzés
Szükség lehet az érték növelésére, mivel a ConnectionTimeout felhasználói példányok betöltése hosszabb időt vehet igénybe, mint a normál példányok.
A következő kódtöredék megnyílik egy újSqlConnection, megjeleníti a kapcsolati sztring a konzolablakban, majd bezárja a kapcsolatot a using kódblokkból való kilépéskor.
Private Sub OpenSqlConnection()
' Retrieve the connection string.
Dim connectionString As String = GetConnectionString()
Using connection As New SqlConnection(connectionString)
connection.Open()
Console.WriteLine("ConnectionString: {0}", _
connection.ConnectionString)
End Using
End Sub
private static void OpenSqlConnection()
{
// Retrieve the connection string.
string connectionString = GetConnectionString();
using (SqlConnection connection =
new SqlConnection(connectionString))
{
connection.Open();
Console.WriteLine("ConnectionString: {0}",
connection.ConnectionString);
}
}
Feljegyzés
A felhasználói példányok nem támogatottak az SQL Serveren belül futó közös nyelvi futtatókörnyezeti (CLR-) kódban. A InvalidOperationException dobás akkor történik, ha Open olyanra SqlConnection van meghívva, amely User Instance=true a kapcsolati sztring van.
Felhasználói példány kapcsolatának élettartama
A szolgáltatásként futó SQL Server-verzióktól eltérően az SQL Server Express-példányokat nem kell manuálisan elindítani és leállítani. Minden alkalommal, amikor egy felhasználó bejelentkezik és csatlakozik egy felhasználói példányhoz, a rendszer elindítja a felhasználói példányt, ha még nem fut. A felhasználóipéldány-adatbázisok beállításának AutoClose beállítása úgy történik, hogy az adatbázis egy inaktivitási időszak után automatikusan le legyen állítva. Az elindított sqlservr.exe folyamat a példányhoz való utolsó kapcsolat lezárása után korlátozott ideig fut, ezért nem kell újraindítani, ha egy másik kapcsolat meg van nyitva az időtúllépés lejárta előtt. A felhasználói példány automatikusan leáll, ha az adott időtúllépési időszak lejárta előtt nem nyílik meg új kapcsolat. A fölérendelt példány rendszergazdája a felhasználói példány időtúllépési beállításának módosításával sp_configure beállíthatja a felhasználói példányok időtúllépési időtartamát. Az alapértelmezett érték 60 perc.
Feljegyzés
Ha Min Pool Size a kapcsolati sztring nullánál nagyobb értékkel használják, a kapcsolatkészletező mindig tart fenn néhány megnyitott kapcsolatot, és a felhasználói példány nem fog automatikusan leállni.
A felhasználói példányok működése
Amikor először hoz létre felhasználói példányt egy felhasználóhoz, a master és msdb rendszeradatbázisok át lesznek másolva a Sablonadatok mappából a felhasználó helyi alkalmazásadattár könyvtárában lévő útvonalra, hogy a felhasználópéldány kizárólagosan által használható legyen. Ez az elérési út általában C:\Documents and Settings\<UserName>\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS. Amikor elindul egy felhasználói példány, a rendszer a tempdb, a napló és a nyomkövetési fájlokat is ebbe a könyvtárba írja. Létrejön egy név a példányhoz, amely garantáltan egyedi lesz az egyes felhasználók számára.
Alapértelmezés szerint a Windows Builtin\Users csoport összes tagja engedélyt kap a helyi példányon való csatlakozásra, valamint az SQL Server bináris fájljain lévő engedélyek olvasására és végrehajtására. A felhasználói példányt üzemeltető hívó felhasználó hitelesítő adatainak ellenőrzése után az adott felhasználó lesz az sysadmin adott példányon. Csak a megosztott memória engedélyezve van a felhasználói példányok esetében, ami azt jelenti, hogy csak a helyi gépen végezhető műveletek.
A felhasználóknak olvasási és írási engedélyeket kell adni a kapcsolati sztring megadott .mdf és .ldf fájlokra.
Feljegyzés
A .mdf és az .ldf fájlok az adatbázist és a naplófájlokat jelölik. Ez a két fájl egyező készlet, ezért a biztonsági mentési és visszaállítási műveletek során gondoskodni kell róla. Az adatbázisfájl információt tartalmaz a naplófájl pontos verziójáról, és az adatbázis nem nyílik meg, ha nem a megfelelő naplófájlhoz van társítva.
Az adatok sérülésének elkerülése érdekében a felhasználói példányban lévő adatbázis kizárólagos hozzáféréssel nyílik meg. Ha két különböző felhasználói példány osztozik ugyanazon az adatbázison ugyanazon a számítógépen, az első példány felhasználójának be kell zárnia az adatbázist, mielőtt egy második példányban megnyitható lenne.
Felhasználói példányok forgatókönyvei
A felhasználói példányok olyan SQL Server-adattárat biztosítanak az adatbázis-alkalmazások fejlesztőinek, amely nem függ attól, hogy a fejlesztők rendszergazdai fiókokkal rendelkeznek a fejlesztői számítógépükön. A felhasználói példányok az Access-/Jet-modellen alapulnak, ahol az adatbázis-alkalmazás egyszerűen egy fájlhoz csatlakozik, és a felhasználó automatikusan teljes engedélyekkel rendelkezik az összes adatbázis-objektumhoz anélkül, hogy rendszergazda beavatkozása szükséges az engedélyek megadásához. Olyan helyzetekben használható, amikor a felhasználó egy minimális jogosultságú felhasználói fiók (LUA) alatt fut, és nem rendelkezik rendszergazdai jogosultságokkal a kiszolgálón vagy a helyi gépen, de adatbázis-objektumokat és alkalmazásokat kell létrehoznia. A felhasználói példányok lehetővé teszik a felhasználók számára, hogy futtatókörnyezetben olyan példányokat hozzanak létre, amelyek a felhasználó saját biztonsági környezetében futnak, és nem egy kiemeltebb rendszerszolgáltatás biztonsági környezetében.
Fontos
A felhasználói példányokat csak olyan helyzetekben szabad használni, ahol az azt használó összes alkalmazás teljes mértékben megbízható.
A felhasználói példányok forgatókönyvei a következők:
Minden olyan egyfelhasználós alkalmazás, amelyben nincs szükség adatok megosztására.
ClickOnce-telepítés. Ha .NET-keretrendszer 2.0 (vagy újabb) és SQL Server Express már telepítve van a célszámítógépen, a ClickOnce művelet eredményeként letöltött telepítőcsomagot a nem rendszergazdai felhasználók is telepíthetik és használhatják. Vegye figyelembe, hogy a rendszergazdának telepítenie kell az SQL Server Expresst, ha ez a beállítás része. További információ: ClickOnce Deployment for Windows Forms.
Dedikált ASP.NET üzemeltetés Windows-hitelesítéssel. Egyetlen SQL Server Express-példány üzemeltethető egy intraneten. Az alkalmazás az ASPNET Windows-fiókkal csatlakozik, nem megszemélyesítéssel. A felhasználói példányok nem használhatók olyan külső vagy megosztott üzemeltetési forgatókönyvekhez, ahol minden alkalmazás ugyanazt a felhasználói példányt használná, és a továbbiakban nem maradna elkülönítve egymástól.