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


SQL-hitelesítés az Azure Synapse Analyticsben

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 engedélyezéséhez két engedélyezési típust használhat:

  • Microsoft Entra-engedélyezés
  • SQL-engedélyezés

Az SQL-engedélyezés lehetővé teszi az örökölt alkalmazások számára, hogy ismerős módon 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.

Rendszergazda istrative fiókok

Két rendszergazdai fiók (SQL admin felhasználónév és SQL Active Directory-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 Admins

  • 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.

  • SQL Active Directory-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 Rendszergazda istrator és a Synapse SQL Rendszergazda istrator szerepkörrel.

Az SQL-rendszergazdai felhasználónév és az SQL Active Directory-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 adja meg az adatbázist master dbo felhasználóként, és csak korlátozott engedélyekkel rendelkezzen az master adatbázisban.
  • Nem tagjai a standard SQL Server sysadmin 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 dbmanager loginmanager szerepkörökhöz.
  • Megtekintheti a rendszertáblát sys.sql_logins .

Megjegyzés:

Ha egy felhasználó Active Directory-rendszergazdaként és Synapse Rendszergazda istratorként van konfigurálva, majd eltávolítja az Active Directory 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 Rendszergazda istrator 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 tartalmazottadatbá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ók számára szeretné teljes mértékben szabályozni az adatbázist, a db_owner rögzített adatbázis-szerepkör tagjának kell őket tenni.

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';

Megjegyzés:

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 a csoportban egy adatbázis-felhasználót. 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 tartalmazottadatbá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.

Permissions

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 beágyazott. 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 master CREATE/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 kiszolgáló rendszergazdája 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ói rendszergazdai bejelentkezés vagy Microsoft Entra-rendszergazda) és a dbmanager adatbázis-szerepkör tagjai rendelkeznek engedéllyel az master adatok és DROP DATABASE utasítások CREATE DATABASE végrehajtására.
  • Az utasítások végrehajtásakor csatlakoznia kell az master CREATE/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ót a tartalmazottadatbázis-felhasználókkal kapcsolatos, az adatbázis hordozhatóvá tételével foglalkozó cikkben talál.
  • 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 ruházza fel a szerepkör tulajdonosát a VIEW DEFINITION engedéllyel.

Következő lépések

További információt a tartalmazottadatbázis-felhasználókkal kapcsolatos, az adatbázis hordozhatóvá tételével foglalkozó cikkben talál.