Megosztás a következőn keresztül:


Tartalmazott adatbázisok

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

A tartalmazott adatbázisok olyan adatbázisok, amelyek el vannak különítve más adatbázisoktól és az adatbázist üzemeltető SQL Server-példánytól. Az SQL Server 4 módon segíti a felhasználót abban, hogy elkülönítse az adatbázist a példánytól.

  • Az adatbázist leíró metaadatok nagy része megmarad az adatbázisban. (A főadatbázisban lévő metaadatok karbantartása mellett vagy helyett.)

  • Minden metaadat ugyanazzal a rendezéssel van definiálva.

  • A felhasználói hitelesítést az adatbázis végezheti el, így az adatbázisok az SQL Server-példány bejelentkezéseihez való függőségét csökkentik.

  • Az SQL Server-környezet (DMV-k, XEvents stb.) jelentéseket készít, és képes elszigetelési információkra reagálni.

A részben tárolt adatbázisok egyes funkciói, például a metaadatok tárolása az adatbázisban, az összes SQL Server-adatbázisra érvényesek. A részlegesen tartalmazott adatbázisok bizonyos előnyeit, például az adatbázisszintű hitelesítést és a katalógus rendezést engedélyezni kell, mielőtt elérhetők lennének. A részleges elszigetelés a CREATE DATABASE és az ALTER DATABASE utasításokkal vagy az SQL Server Management Studióval engedélyezve van. A részleges adatbázis-elszigetelés engedélyezésével kapcsolatos további információkért lásd: Migrálás részlegesen tartalmazott adatbázisba.

Részben tartalmazott adatbázis-fogalmak

A teljes adatbázis tartalmazza az adatbázis meghatározásához szükséges összes beállítást és metaadatot, és nincs konfigurációs függősége annak az SQL Server-adatbázismotornak a példányán, amelyen az adatbázis telepítve van. Az SQL Server korábbi verzióiban az adatbázisok SQL Server-példánytól való elkülönítése időigényes lehet, és részletes ismereteket igényelhet az adatbázis és az SQL Server példány közötti kapcsolatról. A részben tárolt adatbázisok megkönnyítik az adatbázisok elválasztását az SQL Server és más adatbázisok példányától.

A tartalmazott adatbázis az elszigeteléssel kapcsolatos funkciókat veszi figyelembe. Minden olyan felhasználó által definiált entitás, amely csak az adatbázisban található függvényekre támaszkodik, teljes mértékben tartalmazottnak minősül. Minden olyan felhasználó által definiált entitás, amely az adatbázison kívüli függvényekre támaszkodik, nem minősül megvakultnak. (További információkért tekintse meg a témakör későbbi részében található Elszigetelés szakaszt.)

A következő kifejezések a tartalmazott adatbázis-modellre vonatkoznak.

Adatbázis határa
Az adatbázis és az SQL Server-példány közötti határ. Az adatbázis és más adatbázisok közötti határ.

Tartalmazva
Olyan elem, amely teljes egészében az adatbázis határán található.

Korlátlan
Az adatbázis határát átlépő elem.

Nem tartalmazott adatbázis
Olyan adatbázis, amelynek a elszigetelése NONE értékre van állítva. Az összes adatbázis, amelyek az SQL Server 2012-nél korábbi verziókban (11.x) találhatók, nem önállóak. Alapértelmezés szerint minden SQL Server 2012 -hez (11.x) és újabb adatbázishoz NINCS érték van beállítva.

Részben tartalmazott adatbázis
A részlegesen tartalmazott adatbázisok olyan tartalmazott adatbázisok, amelyek lehetővé teszik az adatbázis határát átlépő funkciók némelyikét. Az SQL Server lehetővé teszi annak meghatározását, hogy mikor lépi át az elszigetelési határt.

Tartalmazott felhasználó
A tartalmazott adatbázisokhoz két felhasználótípus létezik.

  • Tartalmazott adatbázis-felhasználó jelszóval

    A jelszóval rendelkező tárolt adatbázis-felhasználókat az adatbázis hitelesíti. További információ: Tartalmazott adatbázis felhasználói – Az adatbázis hordozhatóvá tétele.

  • Windows-tagok

    Az engedélyezett Windows-felhasználók és az engedélyezett Windows-csoportok tagjai közvetlenül csatlakozhatnak az adatbázishoz, és nincs szükségük bejelentkezésre a főadatbázisban . Az adatbázis megbízik a Windows általi hitelesítésben.

A főadatbázisban lévő bejelentkezéseken alapuló felhasználók hozzáférést kaphatnak egy tartalmazott adatbázishoz, de ez függőséget hozna létre az SQL Server-példányon. Ezért a felhasználók bejelentkezések alapján történő létrehozása részleges elszigetelést igényel.

Fontos

A részben tartalmazott adatbázisok engedélyezése a hozzáférés irányítását az SQL Server példányához az adatbázistulajdonosoknak delegálja. További információ: Ajánlott biztonsági eljárások a tartalmazott adatbázisokkal.

Adatbázis határa
Mivel a részben tartalmazott adatbázisok elválasztják az adatbázis funkcióit a példányétól, a két elem, az adatbázis határa között egyértelműen meghatározott vonal van.

Az adatbázis határán belül található az adatbázismodell, ahol az adatbázisokat fejlesztik és kezelik. Az adatbázison belül található entitások közé tartoznak például a rendszertáblák, például a sys.tables, a jelszóval rendelkező adatbázis-felhasználók, valamint az aktuális adatbázis felhasználói táblái, amelyekre kétrészes név hivatkozik.

Az adatbázis határán kívül található a felügyeleti modell, amely a példányszintű függvényekre és a felügyeletre vonatkozik. Az adatbázis határán kívül található entitások közé tartoznak például a rendszertáblák, például a sys.endpoints, a bejelentkezésekre leképezett felhasználók és egy másik, háromrészes névvel hivatkozott felhasználói táblák.

Containment

Azok a felhasználói entitások, amelyek teljes egészében az adatbázisban találhatók, tartalmazottnak minősülnek. Bármely entitást, amely az adatbázison kívül helyezkedik el, vagy az adatbázison kívüli függvényekkel való interakcióra támaszkodik, nem tartalmazottnak tekintenek.

A felhasználói entitások általában a következő elszigetelési kategóriákba sorolhatók:

  • Teljes körű felhasználói entitások (amelyek soha nem lépik át az adatbázis határát), például sys.indexes. Minden olyan kód, amely ezeket a funkciókat használja, vagy bármely olyan objektum, amely csak ezekre az entitásokra hivatkozik, szintén teljes mértékben megtalálható.

  • Nem megadott felhasználói entitások (amelyek átlépik az adatbázis határát), például sys.server_principals vagy egy kiszolgálónév (bejelentkezés) maga. Az ezeket az entitásokat vagy az entitásokra hivatkozó függvényeket használó kódok nem lesznek elérhetők.

Részben tartalmazott adatbázis

A tartalmazott adatbázis funkció jelenleg csak részben tartalmazott állapotban érhető el. A részlegesen tartalmazott adatbázisok olyan tartalmazott adatbázisok, amelyek lehetővé teszik a nem megadott funkciók használatát.

A sys.dm_db_uncontained_entities és a sys.sql_modules (Transact-SQL) nézet használatával adatokat ad vissza a nem kijelölt objektumokról vagy szolgáltatásokról. Az adatbázis elemeinek elszigetelési állapotának meghatározásával felfedezheti, hogy mely objektumokat vagy szolgáltatásokat kell lecserélni vagy módosítani az elszigetelés előléptetéséhez.

Fontos

Mivel bizonyos objektumokhoz nincs alapértelmezett elszigetelési beállítás, ez a nézet hamis pozitív értékeket adhat vissza.

A részben tárolt adatbázisok viselkedése a rendezés szempontjából a leginkább különbözik a nem tartalmazott adatbázisok viselkedésétől. A rendezési problémákról további információt a tartalmazott adatbázis-rendezések című témakörben talál.

Részben tartalmazott adatbázisok használatának előnyei

A nem tartalmazott adatbázisokkal kapcsolatos problémák és bonyodalmak részben tartalmazott adatbázis használatával oldhatók meg.

Adatbázis áthelyezése

Az adatbázisok áthelyezésekor jelentkező problémák egyike, hogy néhány fontos információ nem érhető el, amikor egy adatbázist áthelyeznek az egyik példányból a másikba. A bejelentkezési adatok például nem az adatbázisban, hanem a példányon belül lesznek tárolva. Ha nem tartalmazott adatbázis kerül áthelyezésre az egyik SQL Server-példányból egy másikba, ezek az információk ottmaradnak. A hiányzó adatokat azonosítania kell, és az adatbázisával együtt át kell helyeznie azt az SQL Server új példányába. Ez a folyamat nehéz és időigényes lehet.

A részben tartalmazott adatbázis fontos információkat tárolhat az adatbázisban, így az adatbázis az áthelyezés után is rendelkezik az információkkal.

Megjegyzés:

A részlegesen tartalmazott adatbázisok olyan dokumentációt nyújthatnak, amely leírja azokat a funkciókat, amelyeket egy olyan adatbázis használ, amely nem választható el a példánytól. Ez tartalmazza az egyéb, egymással összefüggő adatbázisok listáját, az adatbázis által igényelt rendszerbeállításokat, de nem lehet tárolni, és így tovább.

A tartalmazott adatbázis felhasználóinak előnye az Always On-nal

Az SQL Server-példányhoz való kapcsolat csökkentésével a részben tárolt adatbázisok hasznosak lehetnek a feladatátvétel során, amikor Always On rendelkezésre állási csoportokat használ.

A tartalmazott felhasználók létrehozása lehetővé teszi, hogy a felhasználó közvetlenül csatlakozzon a tárolt adatbázishoz. Ez egy nagyon fontos funkció a magas rendelkezésre állási és vészhelyreállítási forgatókönyvekben, például egy Always On megoldásban. Ha a felhasználók zárt felhasználók, átváltás esetén a felhasználók anélkül csatlakozhatnak a másodlagoshoz, hogy új bejelentkezéseket kellene létrehozniuk a másodlagos példányon. Ez azonnali előnyt biztosít. További információ: Always On rendelkezésre állási csoportok (SQL Server) áttekintése, valamint az Always On rendelkezésre állási csoportok (SQL Server) előfeltételei, korlátozásai és javaslatai.

Kezdeti adatbázis-fejlesztés

Mivel előfordulhat, hogy egy fejlesztő nem tudja, hol lesz üzembe helyezve egy új adatbázis, az adatbázisra gyakorolt környezeti hatások korlátozása csökkenti a fejlesztő munkáját és aggodalmait. A nem tartalmazott modellben a fejlesztőnek ennek megfelelően figyelembe kell vennie az új adatbázisra és programra gyakorolt lehetséges környezeti hatásokat. A részben tartalmazott adatbázisok használatával azonban a fejlesztők észlelhetik az adatbázisra gyakorolt példányszintű hatásokat és a fejlesztő példányszintű problémáit.

Adatbázis-felügyelet

Ha az adatbázis-beállításokat a főadatbázis helyett az adatbázisban tartja fenn, az egyes adatbázis-tulajdonosok nagyobb mértékben szabályozhatják az adatbázisukat anélkül, hogy az adatbázis tulajdonosának sysadmin-engedélyt adnának .

Korlátozások

A részben tartalmazott adatbázisok nem teszik lehetővé a következő funkciókat.

  • Replikáció, adatrögzítés módosítása vagy változáskövetés.

  • Számozott eljárások

  • A rendezési módosításokkal rendelkező beépített függvénytől függő, sémahoz kötött objektumok

  • A rendezés változásaiból eredő kötésváltozások, beleértve az objektumokra, oszlopokra, szimbólumokra vagy típusokra mutató hivatkozásokat.

Figyelmeztetés

Az ideiglenesen tárolt eljárások jelenleg engedélyezettek. Mivel az ideiglenes tárolt eljárások megsértik az elszigetelést, azokat várhatóan nem fogják támogatni a tartalmazott adatbázis későbbi verziói.

Adatbázis-tartalmazás azonosítása

Az adatbázis elszigetelési állapotának azonosításához két eszköz áll rendelkezésre. A sys.dm_db_uncontained_entities (Transact-SQL) az adatbázis összes potenciálisan nem érintett entitását megjelenítő nézet. A database_uncontained_usage esemény akkor következik be, ha a rendszer futásidőben azonosítja a tényleges nem megjelölt entitásokat.

sys.dm_db_uncontained_entities

Ez a nézet az adatbázisban található összes olyan entitást jeleníti meg, amelyek esetleg nem lesznek ellenőrizve, például azokat, amelyek átlépik az adatbázis határát. Ide tartoznak azok a felhasználói entitások, amelyek az adatbázismodellen kívüli objektumokat használhatnak. Mivel azonban egyes entitások (például a dinamikus SQL-t használók) elszigetelése nem határozható meg a futtatásig, a nézet olyan entitásokat is megjeleníthet, amelyek valójában nem lettek ellenőrizve. További információ: sys.dm_db_uncontained_entities (Transact-SQL).

adatbázis_nem_tartalmazott_használat esemény

Ez az XEvent akkor fordul elő, ha futásidőben azonosít egy nem megjelölt entitást. Ide tartoznak az ügyfélkódból származó entitások. Ez az XEvent csak tényleges, nem kontinens entitások esetén fordul elő. Az esemény viszont csak futás közben történik. Ezért a jelen XEvent nem azonosítja a nem tartalmazott és nem futtatott felhasználói entitásokat.

Lásd még:

Módosított funkciók (tartalmazott adatbázis)
Tartalmazott adatbázis-kollációk
Ajánlott biztonsági eljárások a tartalmazott adatbázisokkal
Migrálás részlegesen korlátozott adatbázisba
Tartalmazott adatbázis-felhasználók – az adatbázis hordozhatóvá tétele