Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Felügyelt Azure SQL-példány
A tartalmazott adatbázisok egyedi fenyegetésekkel rendelkeznek, amelyeket az SQL Server adatbázismotor-rendszergazdáinak kell értelmezniük és enyhítenie. A fenyegetések többsége a FELHASZNÁLÓ JELSZÓVAL hitelesítési folyamathoz kapcsolódik, amely a hitelesítési határt az adatbázismotor szintjéről az adatbázis szintjére helyezi át.
Felhasználókkal kapcsolatos fenyegetések
A ALTER ANY USER engedéllyel rendelkező felhasználók, mint például a db_owner és a db_accessadmin rögzített adatbázisszerepkörök tagjai, az SQL Server rendszergazdája tudta vagy engedélye nélkül is hozzáférést biztosíthatnak az adatbázishoz. Ha hozzáférést ad a felhasználóknak egy tartalmazott adatbázishoz, az növeli a támadási felületet a teljes SQL Server-példány ellen. A rendszergazdáknak meg kell érteniük a hozzáférés-vezérlés ezen delegációját, és különös figyelmet kell fordítaniuk arra, hogy megadják-e a felhasználóknak a zárt adatbázisban az ALTER ANY USER engedélyt. Minden adatbázis-tulajdonos rendelkezik ALTER ANY USER engedéllyel. Az SQL Server rendszergazdáinak rendszeresen naplózniuk kell a felhasználókat egy tárolt adatbázisban.
Más adatbázisok elérése a vendégfiók használatával
Az adatbázis-tulajdonosok és a ALTER ANY USER engedéllyel rendelkező adatbázis-felhasználók tartalmazott adatbázis-felhasználókat hozhatnak létre. Miután egy SQL Server-példányon egy tárolt adatbázishoz csatlakozott, a tárolt adatbázis-felhasználó hozzáférhet az adatbázismotor más adatbázisaihoz, ha a többi adatbázis engedélyezte a vendég-fiókot.
Duplikált felhasználó létrehozása egy másik adatbázisban
Egyes alkalmazások megkövetelik, hogy egy felhasználó több adatbázishoz is hozzáférhessen. Ezt úgy teheti meg, hogy minden adatbázisban azonos, tartalmazott adatbázis-felhasználókat hoz létre. Használja a SID-beállítást a második felhasználó jelszóval való létrehozásakor. Az alábbi példa két azonos felhasználót hoz létre két adatbázisban.
USE DB1;
GO
CREATE USER Carlo WITH PASSWORD = '<strong password>';
-- Return the SID of the user
SELECT SID FROM sys.database_principals WHERE name = 'Carlo';
-- Change to the second database
USE DB2;
GO
CREATE USER Carlo WITH PASSWORD = '<same password>', SID = <SID from DB1>;
GO
Adatbázisközi lekérdezés végrehajtásához be kell állítania a TRUSTWORTHY beállítást a hívó adatbázisban. Ha például a fent definiált felhasználó (Carlo) DB1-ben van, a SELECT * FROM db2.dbo.Table1; végrehajtásához a MEGBÍZHATÓ beállításnak be kell kapcsolva lennie a DB1 adatbázisban. Hajtsa végre a következő kódot a TRUSTWORTHY beállítás bekapcsolásához.
ALTER DATABASE DB1 SET TRUSTWORTHY ON;
Bejelentkezést duplikáló felhasználó létrehozása
Ha egy jelszóval rendelkező, tartalmazott adatbázis felhasználót hoz létre ugyanazzal a névvel, mint egy SQL Server felhasználói fiók, és az SQL Server felhasználói fiók a tartalmazott adatbázist jelöli meg kezdeti katalógusként, akkor az SQL Server felhasználói fiók nem fog tudni csatlakozni. A kapcsolatot a SQL Server bejelentkezésen alapuló felhasználó helyett a tartalmazott adatbázisban jelszóval rendelkező adatbázis-felhasználóként értékelik ki. Ez szándékos vagy véletlen szolgáltatásmegtagadást okozhat az SQL Server-bejelentkezéshez.
Ajánlott eljárásként a sysadmin rögzített kiszolgálói szerepkör tagjainak érdemes megfontolni a csatlakozást a kezdeti katalógusbeállítás használata nélkül. Ez összekapcsolja a bejelentkezést a fő adatbázissal, és elkerüli, hogy az adatbázis tulajdonosa megkíséreljen visszaélni a bejelentkezési kísérlettel. Ezután a rendszergazda a USE<adatbázis-> utasítással válthat a tárolt adatbázisra. Az alapértelmezett adatbázist a bejelentkezéshez beállíthatja a tartalmazott adatbázisra. Ez a művelet befejezi a bejelentkezést a masteradatbázisba, majd átadja a bejelentkezést a tartalmazott adatbázisnak.
Ajánlott eljárásként ne hozzon létre olyan tárolt adatbázis-felhasználókat, akiknek a jelszavai megegyeznek az SQL Server-bejelentkezésekkel.
Ha a duplikált bejelentkezés létezik, csatlakozzon a fő adatbázishoz kezdeti katalógus megadása nélkül, majd futtassa a USE parancsot a tárolt adatbázisra való váltáshoz.
Ha tartalmazott adatbázisok vannak jelen, a nem tartalmazott adatbázisok felhasználóinak a kezdeti katalógus használata nélkül vagy a nem tartalmazott adatbázisok adatbázisnevének kezdeti katalógusként való megadásával kell csatlakozniuk az adatbázismotorhoz. Így elkerülhető a csatlakozás a tartalmazott adatbázishoz, amely kevésbé áll közvetlen irányítás alatt az adatbázismotor rendszergazdái által.
Hozzáférés növelése egy adatbázis elszigetelési állapotának módosításával
Azok a bejelentkezések, amelyeknek ALTER ANY DATABASE engedélyük van, például a dbcreator fix kiszolgálói szerepkör tagjai, valamint a nem tartományi adatbázisokban CONTROL DATABASE engedéllyel rendelkező felhasználók, mint például a db_owner fix adatbázis-szerepkör tagjai, módosíthatják az adatbázis tartományi beállítását. Ha egy adatbázis elszigetelési beállítása NONERÉSZLEGES vagy FULLértékre változik, akkor a felhasználói hozzáférés a jelszóval rendelkező, tartalmazott adatbázis-felhasználók létrehozásával biztosítható. Ez hozzáférést biztosíthat az SQL Server rendszergazdáinak tudta vagy beleegyezése nélkül. Annak érdekében, hogy egyetlen adatbázis se legyen benne, állítsa az Adatbázis motortartalmazott adatbázis-hitelesítés beállítását 0-ra. Ha meg szeretné akadályozni, hogy a tárolt adatbázis felhasználói jelszavakkal csatlakozjanak a kijelölt tárolt adatbázisokhoz, a bejelentkezési eseményindítók használatával megszakíthatja a jelszóval rendelkező, tartalmazott adatbázis-felhasználók bejelentkezési kísérleteit.
Tartalmazott adatbázis csatolása
Egy tartalmazott adatbázis csatolásával a rendszergazda hozzáférést adhat a nemkívánatos felhasználóknak az adatbázismotor példányához. A kockázattal foglalkozó rendszergazdák RESTRICTED_USER módban online állapotba helyezhetik az adatbázist, ami megakadályozza a jelszavakkal rendelkező, tárolt adatbázis-felhasználók hitelesítését. Csak a bejelentkezésekkel felhatalmazott felhasználók férhetnek hozzá az adatbázismotorhoz.
A felhasználók a létrehozásukkor hatályos jelszókövetelmények alapján jönnek létre, és a jelszavak nem lesznek újra ellenőrizve az adatbázis csatolásakor. Ha olyan tartalmazott adatbázist csatol, amely gyenge jelszavakat engedélyezett egy szigorúbb jelszószabályzattal rendelkező rendszerhez, a rendszergazda engedélyezheti azokat a jelszavakat, amelyek nem felelnek meg az aktuális jelszóházirendnek a csatolási adatbázismotoron. A rendszergazdák elkerülhetik a gyenge jelszavak megőrzését azáltal, hogy minden jelszót alaphelyzetbe kell állítani a csatolt adatbázishoz.
Jelszószabályzatok
Az adatbázisok jelszavainak erős jelszavaknak kell lenniük, de nem védhetők robusztus jelszószabályzatokkal. Amikor csak lehetséges, használja a Windows-hitelesítést a Windowsban elérhető szélesebb körű jelszószabályzatok kihasználásához.
Kerberos-hitelesítés
A jelszóval rendelkező tárolt adatbázis-felhasználók nem használhatják a Kerberos-hitelesítést. Ha lehetséges, használja a Windows-hitelesítést a Windows olyan funkcióinak kihasználásához, mint a Kerberos.
Offline szótártámadás
A jelszóval rendelkező, tárolt adatbázis-felhasználók jelszavas kivonatai a tárolt adatbázisban vannak tárolva. Az adatbázisfájlokhoz hozzáféréssel rendelkező felhasználók szótári támadást hajthatnak végre a tárolt adatbázis felhasználói ellen jelszóval egy nem hitelesített rendszeren. A fenyegetés mérséklése érdekében korlátozza az adatbázisfájlokhoz való hozzáférést, vagy csak a Windows-hitelesítés használatával engedélyezze a kapcsolatot a tárolt adatbázisokhoz.
Tartalmazott adatbázis szökése
Ha egy adatbázis részben van tárolva, az SQL Server rendszergazdáinak rendszeresen ellenőriznie kell a felhasználók és modulok képességeit a tárolt adatbázisokban.
Szolgáltatásmegtagadás az AUTO_CLOSE miatt
Ne konfigurálja a tárolt adatbázisokat az automatikus bezáráshoz. Ha bezárul, az adatbázis megnyitása a felhasználó hitelesítéséhez további erőforrásokat használ fel, és hozzájárulhat a szolgáltatásmegtagadási támadáshoz.
Lásd még:
Tartalmazott adatbázisok
Részlegesen tartalmazott adatbázisra történő áttelepítés