SQL-hitelesítés az Azure Synapse Analyticsben

Tip

Microsoft Fabric Data Warehouse egy nagyvállalati szintű relációs raktár egy Data Lake-alaprendszeren, jövőre kész architektúrával, beépített AI-vel és új funkciókkal. Ha még nem ismerkedik adattárházzal, kezdje a Fabric Data Warehouse. A meglévő dedikált SQL-készlet számítási feladatai frissíthetők Fabric az adatelemzés, a valós idejű elemzés és a jelentéskészítés új képességeinek eléréséhez.

Az Azure Synapse Analytics két SQL-űrlaptényezőt használ, amelyek lehetővé teszik az erőforrás-felhasználás szabályozását. Ez a cikk azt ismerteti, hogy a két űrlaptényező hogyan szabályozza a felhasználói hitelesítést.

A Synapse SQL-ben való hitelesítéshez két lehetőség közül választhat:

  • Microsoft Entra hitelesítés
  • SQL-hitelesítés

Az SQL-hitelesítés lehetővé teszi az örökölt alkalmazások számára, hogy ismerős módon, felhasználónévvel és jelszóval csatlakozzanak az Azure Synapse SQL-hez. A Microsoft Entra-hitelesítéssel azonban központilag kezelheti az Azure Synapse-erőforrásokhoz, például az SQL-készletekhez való hozzáférést. Az Azure Synapse Analytics támogatja a helyi hitelesítés, például az SQL-hitelesítés letiltását a munkaterület létrehozása során és után is. A letiltás után a helyi hitelesítést a jogosult felhasználók bármikor engedélyezhetik. A csak Microsoft Entra-hitelesítéssel kapcsolatos további információkért lásd: A helyi hitelesítés letiltása az Azure Synapse Analyticsben.

Felügyeleti fiókok

Két rendszergazdai fiók (SQL-rendszergazdai felhasználónév és Microsoft Entra-rendszergazda) működik rendszergazdaként. Az SQL-készletekhez tartozó rendszergazdai fiókok azonosításához nyissa meg az Azure Portalt, és lépjen a Synapse-munkaterület Tulajdonságok lapjára.

SQL Server-rendszergazdák

  • SQL-rendszergazdai felhasználónév

    Az Azure Synapse Analytics létrehozásakor meg kell adnia egy kiszolgálói rendszergazdai bejelentkezést. Az SQL Server bejelentkezésként hozza létre ezt a fiókot az master adatbázisban. Ez a fiók SQL Server-hitelesítéssel csatlakozik (felhasználónévvel és jelszóval). Ilyen fiókból csak egy létezhet.

  • Microsoft Entra-rendszergazda

    Egy Microsoft Entra-fiók, akár egyéni, akár biztonsági csoportfiók, rendszergazdaként is konfigurálható. Nem kötelező Microsoft Entra-rendszergazdat konfigurálni, de microsoft entra-rendszergazdát kell konfigurálni, ha Microsoft Entra-fiókokat szeretne használni a Synapse SQL-hez való csatlakozáshoz.

    • A Microsoft Entra rendszergazdai fiókja szabályozza a dedikált SQL-készletekhez való hozzáférést, a Synapse RBAC-szerepkörök pedig a kiszolgáló nélküli készletekhez való hozzáférés szabályozására használhatók, például a Synapse rendszergazdai és a Synapse SQL-rendszergazdai szerepkörrel.

Az SQL-rendszergazdai felhasználónév és a Microsoft Entra rendszergazdai fiókok a következő jellemzőkkel rendelkeznek:

  • Csak azok a fiókok csatlakozhatnak automatikusan a kiszolgálón található SQL Database-hez. (Felhasználói adatbázishoz történő csatlakozáshoz a többi fióknak vagy az adatbázis tulajdonosának kell lennie, vagy felhasználói fiókkal kell rendelkeznie az adatbázisban.)
  • Ezek a fiókok dbo-felhasználóként lépnek be a felhasználói adatbázisokba, és minden engedéllyel rendelkeznek az adatbázison belül. (A felhasználói adatbázis tulajdonosa szintén dbo-felhasználóként jelentkezik be.)
  • Ne lépjen be az master adatbázisba, ne jelentkezzen be a dbo felhasználóként, és rendelkezzen korlátozott engedélyekkel az master adatbázisban.
  • Nem tagjai a standard SQL Server rögzített kiszolgálói szerepkörnek, amely nem érhető el az SQL Database-ben.
  • Létrehozhat, módosíthat és elvethet adatbázisokat, bejelentkezéseket, az master adatbázis felhasználóit és kiszolgálószintű IP-tűzfalszabályokat.
  • Tagokat adhat hozzá és távolíthat el a dbmanagerloginmanager szerepkörökhöz.
  • Megtekintheti a rendszertáblát sys.sql_logins .

Note

Ha egy felhasználó Microsoft Entra-rendszergazdaként és Synapse-rendszergazdaként van konfigurálva, majd eltávolítja a Microsoft Entra rendszergazdai szerepköréből, akkor a felhasználó elveszíti a hozzáférést a Synapse dedikált SQL-készleteihez. Ezeket el kell távolítani, majd hozzá kell adni a Synapse-rendszergazdai szerepkörhöz a dedikált SQL-készletekhez való hozzáférés visszanyeréséhez.

A kiszolgáló nélküli SQL-készlethez hozzáféréssel rendelkező felhasználók kezeléséhez használja az alábbi utasításokat.

A kiszolgáló nélküli SQL-készletbe való bejelentkezéshez használja az alábbi szintaxist:

CREATE LOGIN Mary WITH PASSWORD = '<strong_password>';
-- or
CREATE LOGIN [Mary@domainname.net] FROM EXTERNAL PROVIDER;

Ha a bejelentkezés létezik, létrehozhat felhasználókat az egyes adatbázisokban a kiszolgáló nélküli SQL-készlet végpontjában, és megadhatja a szükséges engedélyeket ezeknek a felhasználóknak. Felhasználó létrehozásához a következő szintaxist használhatja:

CREATE USER Mary FROM LOGIN Mary;
-- or
CREATE USER Mary FROM LOGIN Mary@domainname.net;
-- or
CREATE USER [mike@contoso.com] FROM EXTERNAL PROVIDER;

A bejelentkezés és a felhasználó létrehozása után a szokásos SQL Server-szintaxist használhatja a jogosultságok megadásához.

Nem rendszergazdai felhasználók

A nem rendszergazdai fiókoknak általában nincs szükségük az master adatbázishoz való hozzáférésre. Hozzon létre tartalmazott adatbázis-felhasználókat az adatbázis szintjén a CREATE USER (Transact-SQL) utasítással.

A felhasználó lehet egy Microsoft Entra-hitelesítéssel rendelkező adatbázis-felhasználó (ha a környezetet a Microsoft Entra-hitelesítéshez konfigurálta), vagy sql serveres hitelesítéssel rendelkező adatbázis-felhasználó, vagy SQL Server-hitelesítéssel rendelkező felhasználó (amelyet az előző lépésben hoztak létre).)

Felhasználók létrehozásához csatlakozzon az adatbázishoz, és hajtson végre a következő példákhoz hasonló utasításokat:

CREATE USER Mary FROM LOGIN Mary;
CREATE USER [mike@contoso.com] FROM EXTERNAL PROVIDER;

A kezdetekben csak a rendszergazdák vagy az adatbázis tulajdonosa hozhat létre felhasználókat. Ha további felhasználókat szeretne felhatalmazni új felhasználók létrehozására, adja a kiválasztott felhasználónak az ALTER ANY USER engedélyt egy, a következőhöz hasonló utasítással:

GRANT ALTER ANY USER TO Mary;

Ha további felhasználókat szeretne felruházni az adatbázis teljes szabályozási jogával, tegye őket a db_owner fix adatbázis-szerepkör tagjává.

Az Azure SQL Database-ben vagy a synapse kiszolgáló nélküli verziójában használja az utasítást ALTER ROLE .

ALTER ROLE db_owner ADD MEMBER Mary;

Dedikált SQL-készletben használja az EXEC sp_addrolemember.

EXEC sp_addrolemember 'db_owner', 'Mary';

Note

Az adatbázis-felhasználó kiszolgálói bejelentkezés alapján történő létrehozásának egyik gyakori oka az, hogy a felhasználók több adatbázishoz is hozzáférnek. Mivel a tartalmazott adatbázis-felhasználók egyéni entitások, minden adatbázis fenntartja a saját felhasználóját és a saját jelszavát. Ez többletterhelést okozhat, mivel a felhasználónak ezután minden egyes adatbázishoz meg kell jegyeznie az egyes jelszavakat, és több adatbázis több jelszavának módosításakor az is elérhetetlenné válhat.

Csoportok és szerepkörök

A hatékony hozzáférés-kezelés egyéni bejelentkezési adatok helyett csoportokhoz és szerepkörökhöz rendelt engedélyeket használ.

  • A Microsoft Entra-hitelesítés használatakor helyezze a Microsoft Entra-felhasználókat egy Microsoft Entra-csoportba. Hozzon létre korlátozott adatbázis-felhasználót a csoport számára. Helyezzen egy vagy több adatbázis-felhasználót egy adatbázis-szerepkörbe, majd rendeljen engedélyeket az adatbázis-szerepkörhöz.

  • SQL Server-hitelesítés használata esetén hozzon létre tartalmazott adatbázis-felhasználókat az adatbázisban. Helyezzen egy vagy több adatbázis-felhasználót egy adatbázis-szerepkörbe, majd rendeljen engedélyeket az adatbázis-szerepkörhöz.

Az adatbázis-szerepkörök lehetnek beépített szerepkörök, mint például a db_owner, a db_ddladmin, a db_datawriter, a db_datareader, a db_denydatawriter vagy a db_denydatareader. A db_owner általában teljes körű engedélyek biztosítására szolgál néhány felhasználó számára. A többi rögzített adatbázis-szerepkör hasznos az egyszerű adatbázisok fejlesztésének gyors elkezdéséhez, de a legtöbb éles környezetbeli adatbázishoz nem ajánlott.

A db_datareader rögzített adatbázis-szerepkör csak olvasási hozzáférést biztosít az adatbázis minden táblájához, ami általában több a feltétlenül szükségesnél.

Sokkal jobb, ha a CREATE ROLE utasítást használja saját, felhasználó által definiált adatbázis-szerepkörök létrehozására, és gondosan adja meg az egyes szerepkörök számára az üzleti igényhez szükséges legkevésbé szükséges engedélyeket. Ha a felhasználó egyszerre több szerepkörnek is tagja, akkor a rendszer összesíti az engedélyeket.

Engedélyek

Az SQL Database-ben több mint 100 engedély adható vagy tagadható meg külön-külön. Ezek közül számos engedély hierarchikusan van elrendezve. Egy sémában található UPDATE engedély például a séma minden táblájára vonatkozó UPDATE engedélyt tartalmazza. A legtöbb engedélyrendszerhez hasonlóan az engedély megtagadása felülírja a megadását.

Az engedélyek beágyazott jellege és száma miatt lehetséges, hogy alapos tervezés szükséges az adatbázis megfelelő védelmét biztosító engedélyrendszer kialakításához.

Kezdje az Engedélyek (Adatbázismotor) engedélylistával, és tekintse át az adatbázismotor engedélyeinek plakátméret-ábráját.

Megfontolandó szempontok és korlátozások

A bejelentkezések és a felhasználók SQL Database-ben való kezelésekor vegye figyelembe a következő szempontokat:

  • Az utasítások végrehajtásakor csatlakoznia kell az masterCREATE/ALTER/DROP DATABASE adatbázishoz.
  • A kiszolgálói rendszergazdai bejelentkezésnek megfelelő adatbázis-felhasználót nem lehet módosítani vagy elvetni.
  • A szerveradminisztrátor le lesz tiltva, ha engedélyezve van a Microsoft Entra-only hitelesítés.
  • A kiszolgáló-rendszergazdai bejelentkezés alapértelmezett nyelve az amerikai angol (US-English).
  • Csak a rendszergazdák (Kiszolgáló rendszergazda bejelentkezés vagy Microsoft Entra-rendszergazda) és a dbmanager adatbázis-szerepkör tagjai rendelkeznek engedéllyel az master és CREATE DATABASE utasítások DROP DATABASE végrehajtásához.
  • Az utasítások végrehajtásakor csatlakoznia kell az masterCREATE/ALTER/DROP LOGIN adatbázishoz. A bejelentkezések használata azonban nem ajánlott. Helyette használja a tartalmazott adatbázis felhasználóit. További információkért lásd A konténer adattár-felhasználók - Az Adatbázis Hordozhatósága cikket.
  • A felhasználói adatbázishoz történő csatlakozáshoz adja meg a kapcsolati sztringben szereplő adatbázis nevét.
  • Csak a kiszolgálószintű egyszerű bejelentkezés és a loginmanager adatbázis-szerepkör master tagjai rendelkeznek engedéllyel a CREATE LOGIN, ALTER LOGINés DROP LOGIN utasítások végrehajtására.
  • Ha ADO.NET alkalmazásban hajtja végre az CREATE/ALTER/DROP LOGIN és CREATE/ALTER/DROP DATABASE az utasításokat, a paraméteres parancsok használata nem engedélyezett. További információkért lásd: Parancsok és paraméterek.
  • A CREATE USER utasítás FOR/FROM LOGIN beállítással történő futtatásakor ez lehet a Transact-SQL kötegben szereplő egyetlen utasítás.
  • A ALTER USER utasítás WITH LOGIN beállítással történő futtatásakor ez lehet a Transact-SQL kötegben szereplő egyetlen utasítás.
  • CREATE/ALTER/DROP LOGIN és CREATE/ALTER/DROP USER az utasítások nem támogatottak, ha a Microsoft Entra-only hitelesítés engedélyezve van az Azure Synapse-munkaterületen.
  • A CREATE/ALTER/DROP utasítás használatához a felhasználónak ALTER ANY USER engedéllyel kell rendelkeznie az adatbázisban.
  • Amikor egy adatbázis-szerepkör tulajdonosa megpróbál hozzáadni vagy eltávolítani egy másik adatbázis-felhasználót az adatbázis-szerepkörhöz vagy onnan, a következő hiba fordulhat elő: A felhasználó vagy a szerepkör neve nem létezik ebben az adatbázisban. Ez a hiba azért fordul elő, mert a felhasználó nem látható a tulajdonos számára. A probléma megoldása érdekében adjon meg a szerepkör tulajdonosának a VIEW DEFINITION engedélyt a felhasználón.

További információkért lásd A konténer adattár-felhasználók - Az Adatbázis Hordozhatósága cikket.