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-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éndbo
-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 azmaster
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 ésDROP DATABASE
utasításokCREATE 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 aCREATE LOGIN
,ALTER LOGIN
ésDROP LOGIN
utasítások végrehajtására. - Ha ADO.NET alkalmazásban hajtja végre az
CREATE/ALTER/DROP LOGIN
ésCREATE/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ásFOR/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ásWITH 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
ésCREATE/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ónakALTER 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.