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


CREATE USER (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai Platform System (PDW)SQL adatbázis a Microsoft Fabric-ben

Hozzáad egy felhasználót az aktuális adatbázishoz. A 13 felhasználótípus a legalapvetőbb szintaxis mintáját tartalmazza:

Note

Bár a Microsoft Entra ID az Azure Active Directory (Azure AD)új neve, a meglévő környezetek megzavarásának megakadályozása érdekében az Azure AD továbbra is megmarad néhány rögzített elemben, például felhasználói felületi mezőkben, kapcsolatszolgáltatókban, hibakódokban és parancsmagokban. Ebben a cikkben a két név felcserélhető.

felhasználók a master

  • Windows Active Directory-fiókon alapuló bejelentkezésen alapuló felhasználó. CREATE USER [Contoso\Fritz];

  • Felhasználó windowsos csoporton alapuló bejelentkezés alapján. CREATE USER [Contoso\Sales];

  • Felhasználó SQL Server-hitelesítést használó bejelentkezés alapján. CREATE USER Mary;

  • Microsoft Entra-bejelentkezésen alapuló felhasználó. CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com]

    Note

    Microsoft Entra-kiszolgálónevek (bejelentkezések) jelenleg nyilvános előzetes verzióban érhetők el az Azure SQL Database-hez.

    Note

    A bejelentkezések és így a bejelentkezéseken alapuló felhasználók nem támogatottak a Microsoft Fabric SQL-adatbázisában.

az adatbázison hitelesítést felhasználók – Ajánlott az adatbázis hordozhatóbbá tétele érdekében.
Az SQL Database-ben mindig engedélyezett. Csak az SQL Server egy tartalmazott adatbázisában engedélyezett.

  • Olyan Windows-felhasználón alapuló felhasználó, aki nem rendelkezik bejelentkezéssel. CREATE USER [Contoso\Fritz];

  • Olyan Windows-csoporton alapuló felhasználó, amely nem rendelkezik bejelentkezéssel. CREATE USER [Contoso\Sales];

  • Felhasználó az SQL Database-ben vagy az Azure Synapse Analyticsben Egy Microsoft Entra-felhasználó alapján. CREATE USER [Fritz@contoso.com] FROM EXTERNAL PROVIDER;

  • Tartalmazott adatbázis-felhasználó jelszóval. (Az Azure Synapse Analytics nem érhető el.) CREATE USER Mary WITH PASSWORD = '********';

Windows-csoportbeli bejelentkezéseken keresztül csatlakozó Windows-tagokon alapuló felhasználók

  • Olyan Windows-felhasználón alapuló felhasználó, aki nem rendelkezik bejelentkezéssel, de egy Windows-csoport tagságán keresztül csatlakozhat az adatbázismotorhoz. CREATE USER [Contoso\Fritz];

  • A felhasználó olyan Windows-csoporton alapul, amely nem rendelkezik bejelentkezéssel, de egy másik Windows-csoport tagságán keresztül csatlakozhat az adatbázismotorhoz. CREATE USER [Contoso\Fritz];

felhasználók, amelyek nem tudnak hitelesíteni – Ezek a felhasználók nem tudnak bejelentkezni az SQL Serverbe vagy az SQL Database-be.

  • Bejelentkezés nélküli felhasználó. Nem lehet bejelentkezni, de engedélyt kaphat. CREATE USER CustomApp WITHOUT LOGIN;
  • Felhasználó tanúsítvány alapján. Nem lehet bejelentkezni, de engedélyeket kaphat, és modulokat írhat alá. CREATE USER TestProcess FOR CERTIFICATE CarnationProduction50;
  • Felhasználó aszimmetrikus kulcs alapján. Nem lehet bejelentkezni, de engedélyeket kaphat, és modulokat írhat alá. CREATE User TestProcess FROM ASYMMETRIC KEY PacificSales09;

Transact-SQL szintaxis konvenciói

Syntax

Szintaxis az SQL Serverhez, az Azure SQL Database-hez és a felügyelt Azure SQL-példányhoz

-- Syntax Users based on logins in master  
CREATE USER user_name   
    [   
        { FOR | FROM } LOGIN login_name   
    ]  
    [ WITH <limited_options_list> [ ,... ] ]   
[ ; ]  
  
-- Users that authenticate at the database  
CREATE USER   
    {  
      windows_principal [ WITH <options_list> [ ,... ] ]  
  
    | user_name WITH PASSWORD = 'password' [ , <options_list> [ ,... ]   
    | Microsoft_Entra_principal FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] 
    }  
  
 [ ; ]  
  
-- Users based on Windows principals that connect through Windows group logins  
CREATE USER   
    {   
          windows_principal [ { FOR | FROM } LOGIN windows_principal ]  
        | user_name { FOR | FROM } LOGIN windows_principal  
}  
    [ WITH <limited_options_list> [ ,... ] ]   
[ ; ]  
  
-- Users that cannot authenticate   
CREATE USER user_name   
    {  
         WITHOUT LOGIN [ WITH <limited_options_list> [ ,... ] ]  
       | { FOR | FROM } CERTIFICATE cert_name   
       | { FOR | FROM } ASYMMETRIC KEY asym_key_name   
    }  
 [ ; ]  
  
<options_list> ::=  
      DEFAULT_SCHEMA = schema_name  
    | DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }  
    | SID = sid   
    | ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] ]

<limited_options_list> ::=  
      DEFAULT_SCHEMA = schema_name ]   
    | ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] ]  
  
-- SQL Database syntax when connected to a federation member  
CREATE USER user_name  
[;]

-- Syntax for users based on Microsoft Entra logins for Azure SQL Managed Instance
CREATE USER user_name   
    [   { FOR | FROM } LOGIN login_name  ]  
    | FROM EXTERNAL PROVIDER
    [ WITH <limited_options_list> [ ,... ] ]   
[ ; ]  


<limited_options_list> ::=  
      DEFAULT_SCHEMA = schema_name 
    | DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }   
    | ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] ] 

Az Azure Synapse Analytics szintaxisa

CREATE USER user_name   
    [ { { FOR | FROM } { LOGIN login_name }   
      | WITHOUT LOGIN  
    ]   
    [ WITH DEFAULT_SCHEMA = schema_name ]  
[;]

CREATE USER Microsoft_Entra_principal FROM EXTERNAL PROVIDER  
    [ WITH DEFAULT_SCHEMA = schema_name ]  
[;]

Syntax for SQL database in Microsoft Fabric and Azure SQL Database

CREATE USER   
    {  
    Microsoft_Entra_principal FROM EXTERNAL PROVIDER [ WITH <limited_options_list> [ ,... ] ]    
    | Microsoft_Entra_principal WITH <options_list> [ ,... ] 
    }  
 [ ; ]  
  
-- Users that cannot authenticate   
CREATE USER user_name   
    {    WITHOUT LOGIN [ WITH DEFAULT_SCHEMA = schema_name ]  
       | { FOR | FROM } CERTIFICATE cert_name   
       | { FOR | FROM } ASYMMETRIC KEY asym_key_name   
    }  
 [ ; ]  
  
<limited_options_list> ::=  
      DEFAULT_SCHEMA = schema_name  
    | OBJECT_ID = 'objectid'

<options_list> ::=  
      DEFAULT_SCHEMA = schema_name  
    | SID = sid  
    | TYPE = { X | E }

Párhuzamos adattárház szintaxisa

CREATE USER user_name   
    [ { { FOR | FROM }  
      {   
        LOGIN login_name   
      }   
      | WITHOUT LOGIN  
    ]   
    [ WITH DEFAULT_SCHEMA = schema_name ]  
[;]  

Arguments

user_name

Megadja azt a nevet, amellyel a felhasználó azonosítható az adatbázisban. user_name egy sysname. Legfeljebb 128 karakter hosszú lehet. Ha windowsos rendszernév alapján hoz létre felhasználót, a Windows egyszerű neve lesz a felhasználónév, kivéve, ha más felhasználónév van megadva.

BEJELENTKEZÉS login_name

Megadja azt a bejelentkezést, amelyhez az adatbázis-felhasználó létrejön. login_name érvényes bejelentkezésnek kell lennie a kiszolgálón. Lehet windowsos egyszerű (felhasználó vagy csoport), SQL Server-hitelesítést használó bejelentkezés vagy Microsoft Entra-egyszerű (felhasználó, csoport vagy alkalmazás) használatával történő bejelentkezés. Amikor ez az SQL Server-bejelentkezés belép az adatbázisba, beolvasja a létrehozott adatbázis-felhasználó nevét és azonosítóját. Windows-tagról leképezett bejelentkezés létrehozásakor használja a következő formátumot: [<domainName>\<loginName>]. Példák: Szintaxis összegzése.

Ha a CREATE USER utasítás az egyetlen utasítás egy SQL-kötegben, az Azure SQL Database támogatja a WITH LOGIN záradékot. Ha a CREATE USER utasítás nem az egyetlen utasítás egy SQL-kötegben, vagy dinamikus SQL-ben van végrehajtva, akkor a WITH LOGIN záradék nem támogatott.

AHOL DEFAULT_SCHEMA = schema_name

Megadja az első sémát, amelyet a kiszolgáló keres, amikor feloldja az adatbázis-felhasználó objektumainak nevét.

'windows_principal'

Megadja azt a Windows-tagot, amelyhez az adatbázis-felhasználó létrejön. A windows_principal lehet Windows-felhasználó vagy Windows-csoport. A felhasználó akkor is létrejön, ha a windows_principal nem rendelkezik bejelentkezéssel. Ha az SQL Serverhez csatlakozik, ha a windows_principal nem rendelkezik bejelentkezéssel, a Windows-tagnak hitelesítenie kell az adatbázismotorban egy bejelentkezéssel rendelkező Windows-csoport tagságán keresztül, vagy a kapcsolati sztringnek meg kell adnia a tartalmazott adatbázist a kezdeti katalógusként. Ha windowsos egyszerű felhasználót hoz létre, használja a következő formátumot: [<domainName>\<loginName>]. Példák: Szintaxis összegzése. Az Active Directory-felhasználókon alapuló felhasználók legfeljebb 21 karakter hosszúságúak.

'Microsoft_Entra_principal'

Alkalmazható: SQL Server 2022 (16.x) és újabb verziók, SQL Database, SQL Managed Instance, Azure Synapse Analytics, SQL adatbázis Microsoft Fabric-ben

Megadja azt a Microsoft Entra-tagot, amelyhez az adatbázis-felhasználó létrejön. A Microsoft_Entra_principal lehet Microsoft Entra-felhasználó, Microsoft Entra-csoport vagy Microsoft Entra-alkalmazás. (A Microsoft Entra-felhasználók nem használhatnak Windows-hitelesítéses bejelentkezéseket az SQL Database-ben, csak az adatbázis felhasználói.) A kapcsolati sztringnek meg kell adnia a tartalmazott adatbázist kezdeti katalógusként.

Microsoft Entra-tagok esetén a CREATE USER szintaxishoz a következőre van szükség:

  • A Microsoft Entra-objektum UserPrincipalName neve a Microsoft Entra-felhasználók számára.

    • CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
    • CREATE USER [alice@fabrikam.onmicrosoft.com] FROM EXTERNAL PROVIDER;
  • A Microsoft Entra-kiszolgálónevek (bejelentkezések) olyan felhasználók létrehozását vezetik be, amelyek az adatbázisban lévő Microsoft Entra-bejelentkezésekhez master vannak megfeleltetve. Például CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com];

  • A 2048-nál több Microsoft Entra biztonsági csoport tagjaiként működő Microsoft Entra-felhasználók és szolgáltatásnevek (alkalmazások) nem támogatottak az Azure SQL Database, az Azure SQL Managed Instance vagy az Azure Synapse adatbázisaiba való bejelentkezéshez.

  • Microsoft Entra-objektum DisplayName a Microsoft Entra-csoportokhoz és a Microsoft Entra-alkalmazásokhoz. Ha a Nővérek biztonsági csoportot használná, a következőt használná:

    • CREATE USER [Nurses] FROM EXTERNAL PROVIDER;

További információ: Csatlakozás az SQL Database-hez Microsoft Entra-hitelesítéssel.

További információ a Microsoft Entra-hitelesítésről az SQL Serverben : Oktatóanyag: A Microsoft Entra-hitelesítés beállítása az Azure Arc által engedélyezett SQL Serverhez.

JELSZÓVAL = 'jelszó'

A következővonatkozik: SQL Server 2012 (11.x) és újabb, SQL Database.

Csak tartalmazott adatbázisban használható. Megadja a létrehozott felhasználó jelszavát.

Az SQL Server 2012 -től (11.x) kezdődően az SQL Server és az Azure SQL DB sha-512 kivonatot használt egy 32 bites véletlenszerű és egyedi sóval kombinálva. Ez a módszer statisztikailag kiszámíthatatlanná tette, hogy a támadók jelszavakat következtethessenek.

Az SQL Server 2025 (17.x) iterált kivonatoló algoritmust vezet be, RFC2898, más néven jelszóalapú kulcs származtatási függvényt (PBKDF). Ez az algoritmus továbbra is SHA-512-t használ, de többször is kivonatosítja a jelszót (100 000 iteráció), jelentősen lelassítva a találgatásos támadásokat. Ez a módosítás javítja a jelszóvédelmet a változó biztonsági fenyegetésekre válaszul, és segít az ügyfeleknek megfelelni az NIST SP 800-63b irányelveinek. Ez a biztonsági fejlesztés erősebb kivonatolási algoritmust használ, amely kis mértékben növelheti az SQL Authentication-bejelentkezések bejelentkezési idejét. A hatás általában alacsonyabb a kapcsolatkészletezéssel rendelkező környezetekben, de a készletezés nélküli helyzetekben vagy a bejelentkezési késést szorosan figyelik.

BEJELENTKEZÉS NÉLKÜL

Azt határozza meg, hogy a felhasználót nem szabad meglévő bejelentkezéshez leképezni.

TANÚSÍTVÁNY cert_name

Érvényes: SQL Server 2008 (10.0.x) és újabb verziók, SQL adatbázis, SQL adatbázis Microsoft Fabricben

Megadja azt a tanúsítványt, amelyhez az adatbázis-felhasználó létrejön.

ASZIMMETRIKUS KULCS ASYM_KEY_NAME

Érvényes: SQL Server 2008 (10.0.x) és újabb verziók, SQL adatbázis, SQL adatbázis Microsoft Fabricben

Megadja azt az aszimmetrikus kulcsot, amelyhez az adatbázis-felhasználó létrejön.

DEFAULT_LANGUAGE = { NONE | <lcid> | <nyelv neve> | <nyelvi salias> }

A következővonatkozik: SQL Server 2012 (11.x) és újabb, SQL Database

Az új felhasználó alapértelmezett nyelvét adja meg. Ha a felhasználóhoz alapértelmezett nyelv van megadva, és az adatbázis alapértelmezett nyelve később módosul, a felhasználók alapértelmezett nyelve a megadott módon marad. Ha nincs megadva alapértelmezett nyelv, a felhasználó alapértelmezett nyelve lesz az adatbázis alapértelmezett nyelve. Ha a felhasználó alapértelmezett nyelve nincs megadva, és az adatbázis alapértelmezett nyelve később módosul, a felhasználó alapértelmezett nyelve az adatbázis új alapértelmezett nyelvére változik.

Important

DEFAULT_LANGUAGE csak egy tartalmazott adatbázis-felhasználóhoz használható.

SID = sid

Az: SQL Server 2012 (11.x) és újabb verziókra, valamint a Microsoft Fabric SQL-adatbázisára vonatkozik.

Az SQL Server 2012-ben (11.x) és újabb verziókban csak a jelszóval (SQL Server-hitelesítéssel) rendelkező felhasználókra vonatkozik egy tárolt adatbázisban. Az új adatbázis-felhasználó SID-azonosítóját adja meg. Ha ez a beállítás nincs kiválasztva, az SQL Server automatikusan hozzárendel egy SID-et. A SID paraméter használatával több olyan adatbázisban hozhat létre felhasználókat, amelyek azonos identitással (SID) rendelkeznek. Ez akkor hasznos, ha több adatbázisban hoz létre felhasználókat, hogy felkészüljenek az Always On feladatátvételre. A felhasználó sid-azonosítójának meghatározásához lekérdezési sys.database_principals.

A Microsoft Fabric SQL-adatbázisában sid a megadott Microsoft Entra-tag érvényes azonosítójának kell lennie. Ha az egyszerű felhasználó vagy csoport, az azonosítónak a felhasználó/csoport Microsoft Entra objektumazonosítójának kell lennie. Ha a Microsoft Entra egyszerű szolgáltatásnév (alkalmazás vagy felügyelt identitás), az azonosítónak egy alkalmazásazonosítónak (vagy ügyfélazonosítónak) kell lennie. A megadott azonosítónak binary(16) értéknek kell lennie. Az adatbázismotor nem ellenőrzi a megadott azonosítót a Microsoft Entra-ban. A SID argumentumot a TYPEegyütt kell használni.

TÍPUS = [ E | X ]

A következőkre vonatkozik: SQL Database a Microsoft Fabricben és az Azure SQL Database-ben.

A Microsoft Entra-tag típusát adja meg. E azt jelzi, hogy az egyszerű felhasználó vagy szolgáltatásnév (alkalmazás vagy felügyelt identitás). X azt jelzi, hogy az egyszerű csoport.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ BE | KI ]

A következővonatkozik: SQL Server 2016 (13.x) és újabb, SQL Database.

Letiltja a titkosítási metaadatok ellenőrzését a kiszolgálón tömeges másolási műveletek során. Így a felhasználó tömegesen másolhat titkosított adatokat táblák vagy adatbázisok között az adatok visszafejtése nélkül. Az alapértelmezett érték ki van kapcsolva.

Warning

A beállítás helytelen használata adatsérüléshez vezethet. További információ: Bizalmas adatok migrálása Always Encryptedáltal védett.

KÜLSŐ SZOLGÁLTATÓTÓL származó

Érvényes: SQL Server 2022 (16.x) és újabb verziók, SQL Database, Azure SQL Managed Instance, SQL adatbázis Microsoft Fabric-ben

Megadja, hogy a rendszernév a Microsoft Entra-hitelesítéshez legyen használva. Az SQL Server automatikusan ellenőrzi a megadott egyszerű nevet a Microsoft Entra-ban.

Ha a CREATE USER utasítást kibocsátó tag egy Microsoft Entra-felhasználónév, az egyszerűnek (vagy az egyszerű csoportnak) a Címtárolvasók szerepkörben kell lennie a Microsoft Entra-ban.

Az SQL Database-ben és a felügyelt Azure SQL-példányban, ha a utasítást kibocsátó egyszerű szolgáltatásnév, az adatbázis-kiszolgáló vagy a felügyelt példány identitásának a Microsoft Entra Címtárolvasó szerepkörben kell lennie.

Az SQL adatbázisban a Microsoft Fabricben nem FROM EXTERNAL PROVIDER engedélyezett, ha a kibocsátó CREATE USER fő a Microsoft Entra szolgáltatási főszereplője. A szolgáltatásneveknek TYPE és SID argumentumokat kell használniuk a Microsoft Entra-tagok felhasználóinak létrehozásához.

WITH OBJECT_ID = "objectid"

Alkalmazható: SQL Server 2025 (17.x) és újabb, SQL Database, Azure SQL Managed Instance, SQL adatbázis Microsoft Fabric-ben

A Microsoft Entra objektumazonosítóját adja meg. Ha a OBJECT_ID meg van adva, a user_name lehet egy felhasználó által definiált alias, amely az eredeti egyszerű megjelenítendő névből, hozzáfűzve van hozzáfűzve. A user_name egyedi névnek kell lennie a sys.database_principals nézetben, és be kell tartania az összes többi sysname korlátozást. A WITH OBJECT_ID beállítással kapcsolatos további információkért lásd Microsoft Entra-bejelentkezéseket és a nem névvel rendelkező felhasználókat.

Note

Az SQL Server 2025-től (17.x) kezdve ez az WITH OBJECT_ID opció támogatott a Microsoft Entra bejelentkezések és egyedi megjelenítési nevű felhasználók számára.

Ha a szolgáltatásnév megjelenítendő neve nem duplikált, akkor az alapértelmezett CREATE LOGIN vagy CREATE USER utasítást kell használni. A WITH OBJECT_ID bővítmény egy hibaelhárítási javítóelem, amelyet nemunique szolgáltatásnévvel való használatra implementáltak. Nem ajánlott egyedi szolgáltatásnévvel használni. A szolgáltatásnév WITH OBJECT_ID bővítményének utótag hozzáadása nélkül történő használata sikeresen lefut, de nem lesz egyértelmű, hogy melyik szolgáltatásnévhez lett létrehozva a bejelentkezés vagy a felhasználó. Javasoljuk, hogy hozzon létre egy aliast egy utótag használatával a szolgáltatásnév egyedi azonosításához.

Remarks

Ha a FOR LOGIN nincs megadva, az új adatbázis-felhasználó ugyanazzal a névvel lesz leképezve az SQL Server-bejelentkezésre.

Az alapértelmezett séma lesz az első séma, amelyet a kiszolgáló keres, amikor feloldja az adatbázis-felhasználó objektumainak nevét. Ha másként nincs megadva, az alapértelmezett séma lesz az adatbázis-felhasználó által létrehozott objektumok tulajdonosa.

Ha a felhasználó alapértelmezett sémával rendelkezik, a rendszer ezt az alapértelmezett sémát használja. Ha a felhasználó nem rendelkezik alapértelmezett sémával, de a felhasználó egy alapértelmezett sémával rendelkező csoport tagja, a rendszer a csoport alapértelmezett sémáját fogja használni. Ha a felhasználó nem rendelkezik alapértelmezett sémával, és egynél több csoport tagja, akkor a felhasználó alapértelmezett sémája a legalacsonyabb principal_id és explicit módon beállított alapértelmezett sémával rendelkező Windows-csoporté lesz. (Az elérhető alapértelmezett sémák egyikét nem lehet explicit módon kiválasztani előnyben részesített sémaként.) Ha egy felhasználó számára nem határozható meg alapértelmezett séma, a rendszer a dbo sémát fogja használni.

DEFAULT_SCHEMA a séma létrehozása előtt állítható be.

DEFAULT_SCHEMA nem adható meg, ha tanúsítványra vagy aszimmetrikus kulcsra leképezett felhasználót hoz létre.

A rendszer figyelmen kívül hagyja a DEFAULT_SCHEMA értékét, ha a felhasználó tagja a sysadmin rögzített kiszolgálói szerepkörnek. A sysadmin rögzített kiszolgálói szerepkör minden tagja alapértelmezett dbosémával rendelkezik.

A WITHOUT LOGIN záradék létrehoz egy olyan felhasználót, aki nincs hozzárendelve SQL Server-bejelentkezéshez. Vendégként más adatbázisokhoz is csatlakozhat. Az engedélyek bejelentkezés nélkül is hozzárendelhetők ehhez a felhasználóhoz, és ha a biztonsági környezet bejelentkezés nélküli felhasználóra változik, az eredeti felhasználók bejelentkezés nélkül kapják meg a felhasználó engedélyeit. Lásd: D. Bejelentkezés nélküli felhasználó létrehozása és használata.

Csak a Windows-tagokra leképezett felhasználók tartalmazhatják a fordított perjel karaktert (\).

A CREATE USER nem használható vendégfelhasználók létrehozására, mert a vendégfelhasználó már létezik minden adatbázisban. A vendégfelhasználót a CONNECT-engedély megadásával engedélyezheti, ahogy az alábbi ábrán látható:

GRANT CONNECT TO guest; 
GO  

Az adatbázis-felhasználókra vonatkozó információk sys.database_principals katalógusnézetben láthatók.

A szintaxisbővítmény FROM EXTERNAL PROVIDER kiszolgálószintű Microsoft Entra-bejelentkezések létrehozásához az Azure SQL Database-ben és a felügyelt Azure SQL-példányban. A Microsoft Entra-bejelentkezések lehetővé teszik, hogy az adatbázisszintű Microsoft Entra-tagok kiszolgálószintű Microsoft Entra-bejelentkezésekre legyenek leképezve. Microsoft Entra-felhasználó Microsoft Entra-bejelentkezésből való létrehozásához használja az alábbi szintaxist:

CREATE USER [Microsoft_Entra_principal] FROM LOGIN [Microsoft Entra login];

Amikor a felhasználót az Azure SQL-adatbázisban hozza létre, a login_name meg kell felelnie egy meglévő Microsoft Entra-bejelentkezésnek, vagy ha a külső szolgáltatótól származó záradékot használja, csak akkor hoz létre Microsoft Entra-felhasználót, ha nem jelentkezik be a master adatbázisba. Ez a parancs például tartalmazott felhasználót hoz létre:

CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;

Szintaxis összegzése

felhasználók a master

Az alábbi lista a bejelentkezések alapján a felhasználók lehetséges szintaxisát mutatja be. Az alapértelmezett sémabeállítások nincsenek felsorolva.

  • CREATE USER [Domain1\WindowsUserBarry]
  • CREATE USER [Domain1\WindowsUserBarry] FOR LOGIN Domain1\WindowsUserBarry
  • CREATE USER [Domain1\WindowsUserBarry] FROM LOGIN Domain1\WindowsUserBarry
  • CREATE USER [Domain1\WindowsGroupManagers]
  • CREATE USER [Domain1\WindowsGroupManagers] FOR LOGIN [Domain1\WindowsGroupManagers]
  • CREATE USER [Domain1\WindowsGroupManagers] FROM LOGIN [Domain1\WindowsGroupManagers]
  • CREATE USER SQLAUTHLOGIN
  • CREATE USER SQLAUTHLOGIN FOR LOGIN SQLAUTHLOGIN
  • CREATE USER SQLAUTHLOGIN FROM LOGIN SQLAUTHLOGIN

az adatbázis- hitelesítést használó felhasználók

Az alábbi lista olyan felhasználók lehetséges szintaxisát mutatja be, amelyek csak tartalmazott adatbázisban használhatók. A létrehozott felhasználók nem fognak kapcsolódni a -adatbázisban lévő bejelentkezésekhez. Az alapértelmezett séma- és nyelvi beállítások nincsenek felsorolva.

Important

Ez a szintaxis hozzáférést biztosít a felhasználóknak az adatbázishoz, és új hozzáférést biztosít az adatbázismotorhoz.

  • CREATE USER [Domain1\WindowsUserBarry]
  • CREATE USER [Domain1\WindowsGroupManagers]
  • CREATE USER Barry WITH PASSWORD = 'sdjklalie8rew8337!$d'

Windows-tagokon alapuló felhasználók bejelentkezés nélkül a master rendszeradatbázisban

Az alábbi lista olyan felhasználók lehetséges szintaxisát mutatja be, akiknek hozzáférésük van az adatbázismotorhoz egy Windows-csoporton keresztül, de nem rendelkeznek bejelentkezéssel a master rendszeradatbázisban. Ez a szintaxis minden típusú adatbázisban használható. Az alapértelmezett séma- és nyelvi beállítások nincsenek felsorolva.

Ez a szintaxis hasonló a master-ben lévő bejelentkezéseken alapuló felhasználókhoz, de ebben a felhasználókategóriában nincs bejelentkezés a master. A felhasználónak hozzáféréssel kell rendelkeznie az adatbázismotorhoz Egy Windows-csoport bejelentkezésével.

Ez a szintaxis hasonló a Windows-tagokon alapuló tárolt adatbázis-felhasználókhoz, de ez a felhasználókategória nem kap új hozzáférést az adatbázismotorhoz.

  • CREATE USER [Domain1\WindowsUserBarry]
  • CREATE USER [Domain1\WindowsUserBarry] FOR LOGIN Domain1\WindowsUserBarry
  • CREATE USER [Domain1\WindowsUserBarry] FROM LOGIN Domain1\WindowsUserBarry
  • CREATE USER [Domain1\WindowsGroupManagers]
  • CREATE USER [Domain1\WindowsGroupManagers] FOR LOGIN [Domain1\WindowsGroupManagers]
  • CREATE USER [Domain1\WindowsGroupManagers] FROM LOGIN [Domain1\WindowsGroupManagers]

felhasználók, amelyek nem tudják hitelesíteni

Az alábbi lista olyan felhasználók lehetséges szintaxisát mutatja be, amelyek nem tudnak bejelentkezni az SQL Serverre.

  • CREATE USER RIGHTSHOLDER WITHOUT LOGIN
  • CREATE USER CERTUSER FOR CERTIFICATE SpecialCert
  • CREATE USER CERTUSER FROM CERTIFICATE SpecialCert
  • CREATE USER KEYUSER FOR ASYMMETRIC KEY SecureKey
  • CREATE USER KEYUSER FROM ASYMMETRIC KEY SecureKey

Biztonság

A felhasználó létrehozása hozzáférést biztosít egy adatbázishoz, de nem biztosít automatikusan hozzáférést az adatbázis objektumaihoz. A felhasználó létrehozása után gyakori műveletek a felhasználók hozzáadása adatbázis-szerepkörökhöz, amelyek rendelkeznek hozzáféréssel az adatbázis-objektumokhoz, vagy objektumengedélyek biztosítása a felhasználó számára. Az engedélyrendszer kialakításáról további információt az Az adatbázismotor engedélyeinek használatának első lépéseicímű témakörben talál.

A tartalmazott adatbázisok különleges szempontjai

Tartalmazott adatbázishoz való csatlakozáskor, ha a felhasználó nem rendelkezik bejelentkezéssel a master adatbázisban, a kapcsolati sztringnek tartalmaznia kell a tartalmazott adatbázis nevét kezdeti katalógusként. A kezdeti katalógusparaméterre mindig szükség van egy jelszóval rendelkező tárolt adatbázis-felhasználó számára.

A tárolt adatbázisokban a felhasználók létrehozása segít elválasztani az adatbázist az adatbázismotor példányától, hogy az adatbázis könnyen áthelyezhető legyen az SQL Server egy másik példányára. További információ: Tartalmazott adatbázisok és Tartalmazott adatbázis-felhasználók – Az adatbázis hordozhatóvá tétele. Ha egy adatbázis-felhasználót sql serveres hitelesítési bejelentkezésen alapuló felhasználóról jelszóval rendelkező tárolt adatbázis-felhasználóra szeretne módosítani, tekintse meg sp_migrate_user_to_contained (Transact-SQL).

Egy tartalmazott adatbázisban a felhasználóknak nem kell bejelentkezni a master adatbázisba. Az adatbázismotor-rendszergazdáknak tisztában kell lenniük azzal, hogy a tartalmazott adatbázisokhoz való hozzáférés az adatbázis-motorszint helyett az adatbázis szintjén biztosítható. További információ: Ajánlott biztonsági eljárások a tartalmazott adatbázisokkal.

Ha tartalmazott adatbázis-felhasználókat használ az Azure SQL Database-ben, a hozzáférést kiszolgálószintű tűzfalszabály helyett egy adatbázisszintű tűzfalszabály használatával konfigurálja. További információ: sp_set_database_firewall_rule (Azure SQL Database).

Az SQL Server 2022 (16.x), az SQL Database, az Azure SQL Managed Instance és az Azure Synapse Analytics tartalmazott adatbázis-felhasználók esetében az SSMS támogatja a többtényezős hitelesítést. További információ: A Microsoft Entra többtényezős hitelesítés használata.

Permissions

Az adatbázis bármely felhasználói engedélyének módosítása szükséges.

Engedélyek az SQL Server 2022-hez és újabb verziókhoz

A CREATE USER engedély szükséges az adatbázishoz.

Examples

A. Adatbázis-felhasználó létrehozása SQL Server-bejelentkezés alapján

Az alábbi példa először létrehoz egy AbolrousHazemnevű SQL Server-bejelentkezést, majd létrehoz egy megfelelő adatbázis-felhasználót AbolrousHazemAdventureWorks2025.

CREATE LOGIN AbolrousHazem   
    WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';  

Váltson felhasználói adatbázisra. Az SQL Serverben például használja a USE AdventureWorks2022 utasítást. Az Azure Synapse Analytics and Analytics Platform Systemben (PDW) új kapcsolatot kell létesítenie a felhasználói adatbázissal.

CREATE USER AbolrousHazem FOR LOGIN AbolrousHazem;  
GO   

B. Adatbázis-felhasználó létrehozása alapértelmezett sémával

Az alábbi példa először létrehoz egy WanidaBenshoof nevű kiszolgálói bejelentkezést jelszóval, majd létrehoz egy megfelelő adatbázis-felhasználót Wanida, az alapértelmezett séma Marketing.

CREATE LOGIN WanidaBenshoof   
    WITH PASSWORD = '8fdKJl3$nlNv3049jsKK';  
USE AdventureWorks2022;  
CREATE USER Wanida FOR LOGIN WanidaBenshoof   
    WITH DEFAULT_SCHEMA = Marketing;  
GO  

C. Adatbázis-felhasználó létrehozása tanúsítványból

Az alábbi példa létrehoz egy adatbázis-felhasználót, JinghaoLiu a tanúsítványból CarnationProduction50.

Az: SQL Server 2008 (10.0.x) és újabb verziókra vonatkozik.

USE AdventureWorks2022;  
CREATE CERTIFICATE CarnationProduction50  
    WITH SUBJECT = 'Carnation Production Facility Supervisors',  
    EXPIRY_DATE = '11/11/2011';  
GO  
CREATE USER JinghaoLiu FOR CERTIFICATE CarnationProduction50;  
GO   

D. Felhasználó létrehozása és használata bejelentkezés nélkül

Az alábbi példa létrehoz egy adatbázis-felhasználót CustomApp, amely nem képez le SQL Server-bejelentkezést. A példa ezután engedélyt ad a felhasználónak adventure-works\tengiz0 a CustomApp felhasználó megszemélyesítésére.

USE AdventureWorks2022;  
CREATE USER CustomApp WITHOUT LOGIN ;  
GRANT IMPERSONATE ON USER::CustomApp TO [adventure-works\tengiz0] ;  
GO   

A CustomApp hitelesítő adatainak használatához a felhasználó adventure-works\tengiz0 a következő utasítást hajtja végre.

EXECUTE AS USER = 'CustomApp' ;  
GO  

Ha vissza szeretne térni a adventure-works\tengiz0 hitelesítő adataihoz, a felhasználó végrehajtja az alábbi utasítást.

REVERT ;  
GO  

E. Tartalmazott adatbázis-felhasználó létrehozása jelszóval

Az alábbi példa egy tartalmazott adatbázis-felhasználót hoz létre jelszóval. Ez a példa csak egy tartalmazott adatbázisban hajtható végre.

A következővonatkozik: SQL Server 2012 (11.x) és újabb. Ez a példa akkor működik az SQL Database-ben, ha DEFAULT_LANGUAGE el lett távolítva.

USE AdventureWorks2022;  
GO  
CREATE USER Carlo  
WITH PASSWORD='RN92piTCh%$!~3K9844 Bl*'  
    , DEFAULT_LANGUAGE=[Brazilian]  
    , DEFAULT_SCHEMA=[dbo]  
GO   

F. Tartalmazott adatbázis-felhasználó létrehozása tartományi bejelentkezéshez

Az alábbi példa tartalmazott adatbázis-felhasználót hoz létre egy Fritz nevű bejelentkezéshez egy Contoso nevű tartományban. Ez a példa csak egy tartalmazott adatbázisban hajtható végre.

A következővonatkozik: SQL Server 2012 (11.x) és újabb.

USE AdventureWorks2022;  
GO  
CREATE USER [Contoso\Fritz] ;  
GO   

G. Tartalmazott adatbázis-felhasználó létrehozása egy adott SID-sel

Az alábbi példa létrehoz egy SQL Server által hitelesített, CarmenW nevű, tárolt adatbázis-felhasználót. Ez a példa csak egy tartalmazott adatbázisban hajtható végre.

A következővonatkozik: SQL Server 2012 (11.x) és újabb.

USE AdventureWorks2022;  
GO  
CREATE USER CarmenW WITH PASSWORD = 'a8ea v*(Rd##+'  
, SID = 0x01050000000000090300000063FF0451A9E7664BA705B10E37DDC4B7;

H. Felhasználó létrehozása titkosított adatok másolásához

Az alábbi példa egy olyan felhasználót hoz létre, aki az Always Encrypted szolgáltatás által védett adatokat egy táblából, titkosított oszlopokat tartalmazó táblából egy másik, titkosított oszlopokkal rendelkező táblába másolhatja (ugyanabban vagy egy másik adatbázisban). További információ: Bizalmas adatok migrálása Always Encryptedáltal védett.

A következővonatkozik: SQL Server 2016 (13.x) és újabb, SQL Database.

CREATE USER [Chin]   
WITH   
      DEFAULT_SCHEMA = dbo  
    , ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = ON ;  

I. Microsoft Entra-felhasználó létrehozása Microsoft Entra-bejelentkezésből az Azure SQL-ben

Microsoft Entra-felhasználó Microsoft Entra-bejelentkezésből való létrehozásához használja az alábbi szintaxist.

Jelentkezzen be a logikai kiszolgálóra az Azure vagy felügyelt SQL-példányban egy Microsoft Entra-bejelentkezéssel, amely sysadmin szerepkört kapott a felügyelt SQL-példányban, vagy loginmanager szerepkört az SQL Database-ben. A következő T-SQL-szkript létrehoz egy Microsoft Entra-felhasználót bob@contoso.com, a bejelentkezési bob@contoso.com. Ez a bejelentkezés a CREATE LOGIN példában lett létrehozva.

CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com];
GO

Important

Ha microsoft entra-bejelentkezésből hoz létre FELHASZNÁLÓI, adja meg a user_name, mint login_nameBEJELENTKEZÉSI.

A Microsoft Entra-felhasználó csoportként való létrehozása egy csoportnak minősülő Microsoft Entra-bejelentkezésből támogatott.

CREATE USER [MS Entra group] FROM LOGIN [MS Entra group];

GO

Microsoft Entra-felhasználót is létrehozhat egy csoportnak számító Microsoft Entra-bejelentkezésből.

CREATE USER [bob@contoso.com] FROM LOGIN [MS Entra group];

GO

J. Tartalmazott adatbázis-felhasználó létrehozása Microsoft Entra-tagból

Az alábbi szintaxis létrehoz egy Microsoft Entra-felhasználót bob@contoso.comegy adatbázisban, amely nem rendelkezik társított bejelentkezéssel az master. Az adatbázismotor ellenőrzi, hogy a megadott felhasználó létezik-e a Microsoft Entra-ban.

CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
GO

K. Tartalmazott adatbázis-felhasználó létrehozása Microsoft Entra-tagból ellenőrzés nélkül

Alkalmazható: SQL database in Microsoft Fabric és Azure SQL Database

Az ebben a szakaszban található példák adatbázis-felhasználókat hoznak létre a Microsoft Entra-tagok számára anélkül, hogy a Microsoft Entra-ban érvényesítenék az egyszerű neveket.

Az alábbi T-SQL-példa létrehoz egy adatbázis-felhasználót a Microsoft Entra-felhasználó számára, bob@contoso.comnéven. Cserélje le <unique identifier sid> az új felhasználó SID-azonosítójára a Microsoft Entra-felhasználó objektumazonosítójára.

DECLARE @principal_name SYSNAME = 'bob@contoso.com';
DECLARE @objectId UNIQUEIDENTIFIER = '<unique identifier sid>'; -- user's object ID in Microsoft Entra

-- Convert the guid to the right type
DECLARE @castObjectId NVARCHAR(MAX) = CONVERT(VARCHAR(MAX), CONVERT (VARBINARY(16), @objectId), 1);

-- Construct command: CREATE USER [@principal_name] WITH SID = @castObjectId, TYPE = E;
DECLARE @cmd NVARCHAR(MAX) = N'CREATE USER [' + @principal_name + '] WITH SID = ' + @castObjectId + ', TYPE = E;'
EXEC (@cmd);

Az alábbi példa létrehoz egy adatbázis-felhasználót a Microsoft Entra szolgáltatásnévhez HRAppnéven. Cserélje le <unique identifier sid> az új felhasználó SID-azonosítójára a Microsoft Entra szolgáltatásnév ügyfél-azonosítójára.

DECLARE @principal_name SYSNAME = 'HRApp';
DECLARE @clientId UNIQUEIDENTIFIER = '<unique identifier sid>'; -- principal's client ID in Microsoft Entra

-- Convert the guid to the right type
DECLARE @castClientId NVARCHAR(MAX) = CONVERT(VARCHAR(MAX), CONVERT (VARBINARY(16), @clientId), 1);

-- Construct command: CREATE USER [@principal_name] WITH SID = @castClientId, TYPE = E;
DECLARE @cmd NVARCHAR(MAX) = N'CREATE USER [' + @principal_name + '] WITH SID = ' + @castClientId + ', TYPE = E;'
EXEC (@cmd);

Az alábbi példa létrehoz egy adatbázis-felhasználót a Microsoft Entra csoport számára, HRnéven. Cserélje le a <unique identifier sid> az új felhasználó SID-azonosítójára a csoport objektumazonosítójára.

DECLARE @group_name SYSNAME = 'HR';
DECLARE @objectId UNIQUEIDENTIFIER = '<unique identifier sid>'; -- principal's object ID in Microsoft Entra

-- Convert the guid to the right type
DECLARE @castObjectId NVARCHAR(MAX) = CONVERT(VARCHAR(MAX), CONVERT (VARBINARY(16), @objectId), 1);

-- Construct command: CREATE USER [@groupName] WITH SID = @castObjectId, TYPE = X;
DECLARE @cmd NVARCHAR(MAX) = N'CREATE USER [' + @principal_name + '] WITH SID = ' + @castObjectId + ', TYPE = X;'
EXEC (@cmd);

Következő lépések

A felhasználó létrehozása után vegye fel a felhasználót egy adatbázis-szerepkörbe az ALTER ROLE utasítással.
Érdemes lehet GRANT objektumengedélyeket a szerepkörhöz, hogy hozzáférhessenek a táblákhoz. Az SQL Server biztonsági modellel kapcsolatos általános információkért lásd Engedélyekcímű témakört.