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


Izolált hozzáférés konfigurálása egy rugalmas skálázású, elnevezett replikához

A következőre vonatkozik: Azure SQL Database

Ez a cikk azt az eljárást ismerteti, a hogyan adhat hozzáférést egy Azure SQL Rugalmas skálázású replikához anélkül, hogy hozzáférést biztosítanának az elsődleges replikához vagy más nevesített replikákhoz. Ez a forgatókönyv lehetővé teszi egy elnevezett replika erőforrás- és biztonsági elkülönítését – mivel a nevesített replika a saját számítási csomópontjával fog futni –, és akkor hasznos, ha elkülönített írásvédett hozzáférésre van szükség egy Rugalmas skálázású Azure SQL-adatbázishoz. Ebben a kontextusban izolálva azt jelenti, hogy a processzor és a memória nem oszlik meg az elsődleges és a nevesített replika között, a névvel ellátott replikán futó lekérdezések nem használják az elsődleges vagy más replikák számítási erőforrásait, és a névvel ellátott replikához hozzáférő tagok nem férhetnek hozzá más replikákhoz, beleértve az elsődleges replikát is.

Megjegyzés:

A Microsoft Entra ID az Azure Active Directory (Azure AD) új neve. Jelenleg frissítjük a dokumentációt.

Bejelentkezés létrehozása a fő adatbázisban az elsődleges kiszolgálón

master Az elsődleges adatbázist üzemeltető logikai kiszolgálón lévő adatbázisban hajtsa végre az alábbi lépéseket egy új bejelentkezés létrehozásához.

Használjon saját erős és egyedi jelszót.

create login [third-party-login] with password = 'Just4STRONG_PAZzW0rd!';

Kérje le a létrehozott bejelentkezés sid hexadecimális értékét a sys.sql_logins rendszernézetből:

select sid from sys.sql_logins where name = 'third-party-login';

Tiltsa le a bejelentkezést. Ez megakadályozza, hogy ez a bejelentkezés hozzáférhessen az elsődleges replikát üzemeltető kiszolgálón található bármely adatbázishoz.

alter login [third-party-login] disable;

Felhasználó létrehozása az elsődleges olvasási-írási adatbázisban

A bejelentkezés létrehozása után csatlakozzon az adatbázis elsődleges írási-olvasási replikájához, például a WideWorldImportershez (itt talál egy mintaszkriptet a visszaállításhoz: Adatbázis visszaállítása az Azure SQL-ben), és hozzon létre egy adatbázis-felhasználót a bejelentkezéshez:

create user [third-party-user] from login [third-party-login];

Választható lépésként az adatbázis-felhasználó létrehozása után elvetheti az előző lépésben létrehozott kiszolgálói bejelentkezést, ha a bejelentkezés bármilyen módon újra engedélyezve lesz. Csatlakozás az master elsődleges adatbázist üzemeltető logikai kiszolgálón lévő adatbázishoz, és hajtsa végre a következőket:

drop login [third-party-login];

Elnevezett replika létrehozása egy másik logikai kiszolgálón

Hozzon létre egy új Azure SQL logikai kiszolgálót, amely elkülöníti a névvel ellátott replikához való hozzáférést. Kövesse a kiszolgálók és önálló adatbázisok létrehozása és kezelése az Azure SQL Database-ben című témakörben elérhető utasításokat. Névvel ellátott replika létrehozásához a kiszolgálónak ugyanabban az Azure-régióban kell lennie, mint az elsődleges replikát üzemeltető kiszolgáló.

Például az AZ CLI használata:

az sql server create -g MyResourceGroup -n MyNamedReplicaServer -l MyLocation --admin-user MyAdminUser --admin-password MyStrongADM1NPassw0rd!

Ezután hozzon létre egy elnevezett replikát a kiszolgálón található elsődleges adatbázishoz. Például az AZ CLI használata:

az sql db replica create -g MyResourceGroup -n WideWorldImporters -s MyPrimaryServer --secondary-type Named --partner-database WideWorldImporters_NR --partner-server MyNamedReplicaServer

Bejelentkezés létrehozása a névvel ellátott replikakiszolgáló főadatbázisában

Csatlakozás az master előző lépésben létrehozott nevesített replikát üzemeltető logikai kiszolgálón lévő adatbázisba. Adja hozzá a bejelentkezést az elsődleges replikából lekért SID használatával:

create login [third-party-login] with password = 'Just4STRONG_PAZzW0rd!', sid = 0x0...1234;

Ezen a ponton a felhasználók és alkalmazások a nevesített replikát használják third-party-login vagy bob@contoso.com csatlakozhatnak, de az elsődleges replikához nem.

Objektumszintű engedélyek megadása az adatbázisban

Miután beállította a bejelentkezési hitelesítést a leírtak szerint, az adatbázison belüli engedélyezés vagy objektumszintű engedélyek kezelésére használhat rendszeres GRANTDENY REVOKE és utasításokat. Ezekben az utasításokban hivatkozzon az adatbázisban létrehozott felhasználó nevére, vagy egy olyan adatbázisszerepkörre, amely tagként tartalmazza ezt a felhasználót. Ne felejtse el végrehajtani ezeket a parancsokat az elsődleges replikán. A módosítások az összes másodlagos replikára propagálásra kerülnek, de csak azon a nevesített replikán lesznek érvényben, ahol a kiszolgálószintű bejelentkezés létrejött.

Ne feledje, hogy az újonnan létrehozott felhasználók alapértelmezés szerint minimális engedélykészlettel rendelkeznek (például nem férnek hozzá felhasználói táblákhoz). Ha adatokat szeretne engedélyezni third-party-user vagy bob@contoso.com olvasni egy táblában, explicit módon meg kell adnia az SELECT engedélyt:

GRANT SELECT ON [Application].[Cities] to [third-party-user];

Az engedélyek minden táblán külön-külön történő megadása helyett hozzáadhatja a felhasználót az db_datareadersadatbázis-szerepkörhöz , hogy olvasási hozzáférést engedélyezhessen az összes táblához, vagy sémákkal engedélyezheti a séma összes meglévő és új táblájának elérését .

Hozzáférés tesztelése

Ezt a konfigurációt bármely ügyféleszközzel tesztelheti, és megpróbálhat csatlakozni az elsődleges és a nevesített replikához. A használatával sqlcmdpéldául megpróbálhat csatlakozni az elsődleges replikához a third-party-login felhasználóval:

sqlcmd -S MyPrimaryServer.database.windows.net -U third-party-login -P Just4STRONG_PAZzW0rd! -d WideWorldImporters

Ez hibát fog eredményezni, mivel a felhasználó nem csatlakozhat a kiszolgálóhoz:

Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : Login failed for user 'third-party-login'. Reason: The account is disabled.

A névvel ellátott replikához való csatlakozás sikeres:

sqlcmd -S MyNamedReplicaServer.database.windows.net -U third-party-login -P Just4STRONG_PAZzW0rd! -d WideWorldImporters_NR

A rendszer nem ad vissza hibákat, és a lekérdezések a megadott objektumszintű engedélyek által engedélyezett módon hajthatók végre a nevesített replikán.

For more information: