Dela via


SKAPA INLOGGNING (Transact-SQL)

Skapar en inloggning för SQL Server-, Azure SQL Database-, Azure SQL Managed Instance-, Azure Synapse Analytics- eller Analytics Platform System-databaser. Välj någon av följande flikar för syntax, argument, kommentarer, behörigheter och exempel för en viss version.

CREATE LOGIN deltar i transaktioner. Om CREATE LOGIN körs i en transaktion och transaktionen återställs återställs, återställs skapandet av inloggningen. Om den körs i en transaktion kan den skapade inloggningen inte användas förrän transaktionen har checkats in.

Not

Microsoft Entra ID tidigare kallades Azure Active Directory (Azure AD).

Mer information om syntaxkonventionerna finns i Transact-SQL syntaxkonventioner.

Välj en produkt

På följande rad väljer du det produktnamn som du är intresserad av och endast den produktinformationen visas.

* SQL Server *  

 

SQL Server

Syntax

-- Syntax for SQL Server
CREATE LOGIN login_name { WITH <option_list1> | FROM <sources> }

<option_list1> ::=
    PASSWORD = { 'password' | hashed_password HASHED } [ MUST_CHANGE ]
    [ , <option_list2> [ ,... ] ]

<option_list2> ::=
    SID = sid
    | DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language
    | CHECK_EXPIRATION = { ON | OFF}
    | CHECK_POLICY = { ON | OFF}
    | CREDENTIAL = credential_name

<sources> ::=
    WINDOWS [ WITH <windows_options>[ ,... ] ]
    | EXTERNAL PROVIDER
    | CERTIFICATE certname
    | ASYMMETRIC KEY asym_key_name

<windows_options> ::=
    DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language

Argument

login_name

Anger namnet på den inloggning som skapas. Det finns fem typer av inloggningar: SQL Server-inloggningar, Windows-inloggningar, Microsoft Entra-inloggningar, certifikatmappade inloggningar och asymmetriska nyckelmappade inloggningar.

När du skapar inloggningar som mappas från ett Windows-domänkonto måste du använda inloggningsnamnet i formatet [<domainName>\<login_name>]. Du kan inte använda ett UPN i formatet login_name@DomainName. Ett exempel finns i exempel E senare i den här artikeln. Autentiseringsinloggningar är typ sysname och måste följa reglerna för identifierare och får inte innehålla ett omvänt snedstreck (). Windows-inloggningar kan innehålla en\. Inloggningar baserade på Active Directory-användare är begränsade till namn på färre än 21 tecken.

När du använder satsen FROM EXTERNAL PROVIDER måste inloggningsnamnet matcha visningsnamnet för ett befintligt Microsoft Entra-huvudnamn i samma klientorganisation som SQL-instansen är Arc-aktiverad för. Microsoft Entra-användare, grupper och program kan användas för att skapa inloggningar.

PASSWORD ='lösenord'

Gäller endast för SQL Server-inloggningar. Anger lösenordet för inloggningen som skapas. Använd ett starkt lösenord. Mer information finns i Starka lösenord och lösenordsprincip. Från och med SQL Server 2012 (11.x) beräknas lagrad lösenordsinformation med SHA-512 av det saltade lösenordet.

Lösenord är skiftlägeskänsliga. Lösenord ska alltid vara minst åtta tecken långa och får inte överstiga 128 tecken. Lösenord kan innehålla a-z, A-Z, 0-9 och de flesta icke-numeriska tecken. Lösenord får inte innehålla enkla citattecken eller login_name.

PASSWORD = hashed_password

Gäller endast för HASHED-nyckelordet. Anger hashvärdet för lösenordet för inloggningen som skapas.

HASHED

Gäller endast för SQL Server-inloggningar. Anger att lösenordet som angetts efter argumentet LÖSENORD redan har hashats. Om det här alternativet inte är markerat hashas strängen som angetts som lösenord innan den lagras i databasen. Det här alternativet bör endast användas för att migrera databaser från en server till en annan. Använd inte HASHED-alternativet för att skapa nya inloggningar. Hashed-alternativet kan inte användas med hashvärden som skapats av SQL 7 eller tidigare.

MUST_CHANGE

Gäller endast för SQL Server-inloggningar. Om det här alternativet ingår uppmanar SQL Server användaren att ange ett nytt lösenord första gången den nya inloggningen används.

CREDENTIAL =credential_name

Namnet på en autentiseringsuppgift som ska mappas till den nya SQL Server-inloggningen. Autentiseringsuppgifterna måste redan finnas på servern. För närvarande länkar det här alternativet endast autentiseringsuppgifterna till en inloggning. Det går inte att mappa en autentiseringsuppgift till systemadministratörens (sa) inloggning.

SID = sid

Används för att återskapa en inloggning. Gäller endast för SQL Server-autentiseringsinloggningar, inte Windows-autentiseringsinloggningar. Anger SID för den nya SQL Server-autentiseringsinloggningen. Om det här alternativet inte används tilldelar SQL Server automatiskt ett SID. SID-strukturen beror på SQL Server-versionen. SQL Server-inloggnings-SID: ett 16 byte (binärt(16)) literalvärde baserat på ett GUID. Till exempel SID = 0x14585E90117152449347750164BA00A7.

DEFAULT_DATABASE =databas

Anger den standarddatabas som ska tilldelas till inloggningen. Om det här alternativet inte ingår är standarddatabasen inställd på master.

DEFAULT_LANGUAGE =språk

Anger det standardspråk som ska tilldelas till inloggningen. Om det här alternativet inte ingår är standardspråket inställt på serverns aktuella standardspråk. Om standardspråket för servern ändras senare förblir standardspråket för inloggningen oförändrat.

CHECK_EXPIRATION = { ON | AV }

Gäller endast för SQL Server-inloggningar. Anger om lösenordets förfalloprincip ska tillämpas vid den här inloggningen. Standardvärdet är AV.

CHECK_POLICY = { ON | AV }

Gäller endast för SQL Server-inloggningar. Anger att Windows-lösenordsprinciperna för den dator där SQL Server körs ska tillämpas vid den här inloggningen. Standardvärdet är PÅ.

Om Windows-principen kräver starka lösenord måste lösenord innehålla minst tre av följande fyra egenskaper:

  • Ett versaler (A-Z).
  • Ett gemener (a-z).
  • En siffra (0–9).
  • Ett av de icke-numeriska tecknen, till exempel blanksteg, _, @, *, ^, %, !, $, #eller &.

WINDOWS

Anger att inloggningen ska mappas till en Windows-inloggning.

FRÅN EXTERN PROVIDER

Anger att inloggningen är mappad till ett Microsoft Entra-huvudnamn. Det här alternativet är tillgängligt för Arc-aktiverade SQL Server 2022- och senare versioner. Mer information finns i Microsoft Entra-autentisering för SQL Server

CERTIFIKAT certifikatnamn

Anger namnet på ett certifikat som ska associeras med den här inloggningen. Det här certifikatet måste redan finnas i master-databasen.

ASYMMETRISK NYCKEL asym_key_name

Anger namnet på en asymmetrisk nyckel som ska associeras med den här inloggningen. Den här nyckeln måste redan finnas i master-databasen.

Anmärkningar

  • Lösenord är skiftlägeskänsliga.
  • Prehashing av lösenord stöds endast när du skapar SQL Server-inloggningar.
  • Om MUST_CHANGE anges måste CHECK_EXPIRATION och CHECK_POLICY anges till ON. Annars misslyckas -instruktionen.
  • En kombination av CHECK_POLICY = OFF och CHECK_EXPIRATION = ON stöds inte.
  • När CHECK_POLICY är inställt på OFFåterställs lockout_time och CHECK_EXPIRATION är inställt på OFF.

Viktig

CHECK_EXPIRATION och CHECK_POLICY tillämpas endast på Windows Server 2003 och senare versioner. Mer information finns i lösenordsprincip.

Behörigheter

  • Endast användare med ÄNDRA BEHÖRIGHETER FÖR INLOGGNING på servern eller medlemskapet i securityadmin fast serverroll kan skapa inloggningar. Mer information finns i Server-Level Roller och ALTER SERVER ROLE.
  • Om alternativet CREDENTIAL används, krävs även ÄNDRA BEHÖRIGHET BEHÖRIGHET PÅ servern.

Behörigheter för SQL Server 2022 och senare

Kräver behörigheten SKAPA INLOGGNING på servern eller medlemskapet i ##MS_LoginManager## fast serverroll.

När du har skapat en inloggning

När du har skapat en inloggning kan inloggningen ansluta till SQL Server, men har bara behörigheter som beviljats till offentliga roll. Överväg att utföra några av följande aktiviteter.

  • Om du vill ansluta till en databas skapar du en databasanvändare för inloggningen. Mer information finns i CREATE USER.
  • Skapa en användardefinierad serverroll med hjälp av CREATE SERVER ROLE. Använd ALTER SERVER ROLE ... ADD MEMBER för att lägga till den nya inloggningen till den användardefinierade serverrollen. Mer information finns i CREATE SERVER ROLE and ALTER SERVER ROLE.
  • Använd sp_addsrvrolemember för att lägga till inloggningen till en fast serverroll. Mer information finns i Server-Level Roller och sp_addsrvrolemember.
  • Använd instruktionen GRANT för att bevilja behörigheter på servernivå till den nya inloggningen eller till en roll som innehåller inloggningen. Mer information finns i GRANT.

Exempel

A. Skapa en inloggning med ett lösenord

I följande exempel skapas en inloggning för en viss användare och ett lösenord tilldelas.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO

B. Skapa en inloggning med ett lösenord som måste ändras

I följande exempel skapas en inloggning för en viss användare och ett lösenord tilldelas. Alternativet MUST_CHANGE kräver att användarna ändrar lösenordet första gången de ansluter till servern.

gäller för: SQL Server 2008 (10.0.x) och senare versioner.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>'
    MUST_CHANGE, CHECK_EXPIRATION = ON;
GO

Not

Det går inte att använda alternativet MUST_CHANGE när CHECK_EXPIRATION är AV.

C. Skapa en inloggning mappad till en autentiseringsuppgift

I följande exempel skapas inloggningen för en viss användare med hjälp av användaren. Den här inloggningen mappas till autentiseringsuppgifterna.

gäller för: SQL Server 2008 (10.0.x) och senare versioner.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>',
    CREDENTIAL = <credentialName>;
GO

D. Skapa en inloggning från ett certifikat

I följande exempel skapas inloggning för en viss användare från ett certifikat i master.

gäller för: SQL Server 2008 (10.0.x) och senare versioner.

USE MASTER;
CREATE CERTIFICATE <certificateName>
    WITH SUBJECT = '<login_name> certificate in master database',
    EXPIRY_DATE = '12/05/2025';
GO
CREATE LOGIN <login_name> FROM CERTIFICATE <certificateName>;
GO

E. Skapa en inloggning från ett Windows-domänkonto

I följande exempel skapas en inloggning från ett Windows-domänkonto.

gäller för: SQL Server 2008 (10.0.x) och senare versioner.

CREATE LOGIN [<domainName>\<login_name>] FROM WINDOWS;
GO

F. Skapa en inloggning från ett SID

I följande exempel skapas först en SQL Server-autentiseringsinloggning och anger SID för inloggningen.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';
SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

Min fråga returnerar 0x241C11948AEEB749B0D22646DB1A19F2 som SID. Frågan returnerar ett annat värde. Följande instruktioner tar bort inloggningen och återskapar sedan inloggningen. Använd SID från föregående fråga.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

G. Skapa en inloggning med flera argument

I följande exempel visas hur du stränger flera argument tillsammans med kommatecken mellan varje argument. Ersätt <password> med ett giltigt lösenord.

CREATE LOGIN [MyUser]
WITH PASSWORD = '<password>',
DEFAULT_DATABASE = MyDatabase,
CHECK_POLICY = OFF,
CHECK_EXPIRATION = OFF ;

H. Skapa en SQL-inloggning med hash-lösenord

I följande exempel visas hur du skapar SQL-inloggningar med samma lösenord som befintliga inloggningar som i ett migreringsscenario. Det första steget är att hämta lösenordshash från befintliga inloggningar på källdatabasservern. Sedan används samma hash för att skapa inloggningen på en ny databasserver. Genom att göra detta har den nya inloggningen samma lösenord som på den gamla servern.

-- run this to retrieve the password hash for an individual Login:
SELECT LOGINPROPERTY('Andreas','PASSWORDHASH') AS password_hash;
-- as an alternative, the catalog view sys.sql_logins can be used to retrieve the password hashes for multiple accounts at once. (This could be used to create a dynamic sql statement from the result set
SELECT name, password_hash
FROM sys.sql_logins
  WHERE
    principal_id > 1    -- excluding sa
    AND
    name NOT LIKE '##MS_%##' -- excluding special MS system accounts
-- create the new SQL Login on the new database server using the hash of the source server
CREATE LOGIN Andreas
  WITH PASSWORD = 0x02000A1A89CD6C6E4C8B30A282354C8EA0860719D5D3AD05E0CAE1952A1C6107A4ED26BEBA2A13B12FAB5093B3CC2A1055910CC0F4B9686A358604E99BB9933C75B4EA48FDEA HASHED;

Jag. Skapa en inloggning för en Microsoft Entra-användare

I följande exempel skapas en inloggning för Microsoft Entra-kontot joe@contoso.onmicrosoft.com som finns i Microsoft Entra-klientorganisationen med namnet contoso.

CREATE LOGIN [joe@contoso.onmicrosoft.com] FROM EXTERNAL PROVIDER

GO

J. Skapa en inloggning för ett federerat Microsoft Entra-konto

I följande exempel skapas en inloggning för ett federerat Microsoft Entra-konto bob@contoso.com som finns i en klientorganisation som heter contoso. Användaren bob kan också vara en gästanvändare.

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

K. Skapa en inloggning för en Microsoft Entra-grupp

I följande exempel skapas en inloggning för Microsoft Entra-gruppen mygroup- som finns i klientorganisationen contoso.

CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
GO

L. Skapa en inloggning för ett Microsoft Entra-program

I följande exempel skapas en inloggning för Microsoft Entra-programmet myapp som finns i klientorganisationen contoso.

CREATE LOGIN [myapp] FROM EXTERNAL PROVIDER

* Azure SQL Database *  

 

SQL Database

Mer information om anslutning och auktorisering till Azure SQL Database finns i:

Syntax

-- Syntax for Azure SQL Database
CREATE LOGIN login_name
  { 
    FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] 
    | WITH <option_list> [,..] 
  }

<option_list> ::=
    PASSWORD = { 'password' }
    [ , SID = sid ]

Argument

login_name

Not

Microsoft Entra-serverhuvudkonton (inloggningar) är för närvarande i offentlig förhandsversion för Azure SQL Database.

När den används med satsen FROM EXTERNAL PROVIDER anger inloggningen Microsoft Entra-huvudnamnet, som är en Microsoft Entra-användare, grupp eller program. Annars representerar inloggningen namnet på DEN SQL-inloggning som skapades.

Microsoft Entra-användare och tjänsthuvudnamn som är medlemmar i fler än 2048 Microsoft Entra-säkerhetsgrupper stöds inte för att logga in på databasen i SQL Database, SQL Managed Instance eller Azure Synapse.

FRÅN EXTERN PROVIDER

Anger att inloggningen är för Microsoft Entra-autentisering.

MED OBJECT_ID = "objectid"

Anger Microsoft Entra-objekt-ID. Om OBJECT_ID anges krävs inte login_name för att matcha Microsoft Entra-visningsnamnet. Login_name måste vara ett unikt namn i sys.server_principals-vyn och följa alla andra sysname begränsningar. Mer information om hur du använder alternativet WITH OBJECT_ID finns i Microsoft Entra-inloggningar och användare med icke-unika visningsnamn.

Not

Om visningsnamnet för tjänstens huvudnamn inte är en dubblett ska standardsatsen CREATE LOGIN eller CREATE USER användas. Tillägget WITH OBJECT_ID är ett felsökningsreparationsobjekt som implementerats för användning med icke-substantiv tjänsthuvudnamn. Det rekommenderas inte att du använder det med ett unikt huvudnamn för tjänsten. Det går att använda WITH OBJECT_ID-tillägget för ett huvudnamn för tjänsten utan att lägga till ett suffix, men det är inte uppenbart vilket tjänsthuvudnamn som inloggningen eller användaren skapades för. Vi rekommenderar att du skapar ett alias med hjälp av ett suffix för att unikt identifiera tjänstens huvudnamn. Tillägget WITH OBJECT_ID stöds inte för SQL Server.

LÖSENORD ='lösenord'

Anger lösenordet för SQL-inloggningen som skapas. Använd ett starkt lösenord. Mer information finns i Starka lösenord och lösenordsprincip. Från och med SQL Server 2012 (11.x) beräknas lagrad lösenordsinformation med SHA-512 av det saltade lösenordet.

Lösenord är skiftlägeskänsliga. Lösenord ska alltid vara minst åtta tecken långa och får inte överstiga 128 tecken. Lösenord kan innehålla a-z, A-Z, 0-9 och de flesta icke-numeriska tecken. Lösenord får inte innehålla enkla citattecken eller login_name.

SID = sid

Används för att återskapa en inloggning. Gäller endast för SQL Server-autentiseringsinloggningar, inte Windows-autentiseringsinloggningar. Anger SID för den nya SQL Server-autentiseringsinloggningen. Om det här alternativet inte används tilldelar SQL Server automatiskt ett SID. SID-strukturen beror på SQL Server-versionen. För SQL Database är detta en 32 byte (binär(32)) literal som består av 0x01060000000000640000000000000000 plus 16 byte som representerar ett GUID. Till exempel SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

Anmärkningar

  • Lösenord är skiftlägeskänsliga.
  • När du skapar en inloggning aktiveras automatiskt den nya inloggningen och ger inloggningen behörigheten CONNECT SQL behörighet.

Viktig

Mer information om hur du arbetar med inloggningar och användare i Azure SQL Database finns i Hantera inloggningar i Azure SQL Database.

Logga in

SQL Database-inloggningar

Instruktionen CREATE LOGIN måste vara den enda instruktionen i en batch.

I vissa metoder för att ansluta till SQL Database, till exempel sqlcmd, måste du lägga till SQL Database-servernamnet i inloggningsnamnet i anslutningssträngen med hjälp av <inloggning>@<server> notation. Om din inloggning till exempel är login1 och det fullständigt kvalificerade namnet på SQL Database-servern är servername.database.windows.netska parametern användarnamn i anslutningssträngen vara login1@servername. Eftersom den totala längden på användarnamn parametern är 128 tecken är login_name begränsad till 127 tecken minus längden på servernamnet. I exemplet kan login_name bara vara 117 tecken lång eftersom servername är 10 tecken.

I SQL Database måste du vara ansluten till master-databasen med rätt behörighet för att skapa en inloggning. Mer information finns i Skapa ytterligare inloggningar och användare som har administratörsbehörighet.

Med SQL Server-regler kan du skapa en SQL Server-autentiseringsinloggning i formatet <inloggningsnamn>@<servernamn>. Om din SQL Database-server är myazureserver och inloggningen är myemail@contoso.commåste du ange inloggningen som myemail@contoso.com@myazureserver.

I SQL Database cachelagras de inloggningsdata som krävs för att autentisera en anslutning och brandväggsregler på servernivå tillfälligt i varje databas. Den här cachen uppdateras regelbundet. Om du vill framtvinga en uppdatering av autentiseringscacheminnet och se till att en databas har den senaste versionen av inloggningstabellen kör du DBCC FLUSHAUTHCACHE.

Behörigheter

Endast inloggningen på servernivå (skapad av etableringsprocessen) eller medlemmar i loginmanager databasrollen i master-databasen kan skapa nya inloggningar. Mer information finns i Skapa ytterligare inloggningar och användare som har administratörsbehörighet.

Exempel

A. Skapa en inloggning med ett lösenord

I följande exempel skapas en inloggning för en viss användare och ett lösenord tilldelas. Anslut till master databaser och använd sedan följande kodexempel.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO

B. Skapa en inloggning från ett SID

I följande exempel skapas först en SQL Server-autentiseringsinloggning och anger SID för inloggningen. Anslut till master databaser och använd sedan följande kodexempel.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

Min fråga returnerar 0x241C11948AEEB749B0D22646DB1A19F2 som SID. Frågan returnerar ett annat värde. Följande instruktioner tar bort inloggningen och återskapar sedan inloggningen. Använd SID från föregående fråga.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

C. Skapa en inloggning med ett Microsoft Entra-konto

Det här exemplet skapar en inloggning på den logiska Azure SQL-servern med autentiseringsuppgifterna för en användare bob@contoso.com som finns i Microsoft Entra-domänen med namnet contoso. Anslut till master databaser och använd sedan följande kodexempel.

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

D. Skapa en inloggning med ett alias med hjälp av objekt-ID

Du kan skapa ett alias för din login_name genom att ange objekt-ID för Tjänstens huvudnamn eller grupp för Microsoft Entra. Anslut till master databaser och använd sedan följande kodexempel.

CREATE LOGIN [myapp4466e] FROM EXTERNAL PROVIDER 
  WITH OBJECT_ID='aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb';

Mer information om hur du hämtar objekt-ID för ett huvudnamn för tjänsten finns i objekt för tjänstens huvudnamn i Microsoft Entra-ID.

* Azure SQL
Hanterad instans *

 

Azure SQL Managed Instance

Syntax

-- Syntax for Azure SQL Managed Instance
CREATE LOGIN login_name [FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] ] { WITH <option_list> [,..]}

<option_list> ::=
    PASSWORD = {'password'}
    | SID = sid
    | DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language

Argument

login_name

När den används med satsen FROM EXTERNAL PROVIDER anger inloggningen Microsoft Entra-huvudnamnet, som är en Microsoft Entra-användare, grupp eller program. Annars representerar inloggningen namnet på DEN SQL-inloggning som skapades.

Microsoft Entra-användare och tjänsthuvudnamn som är medlemmar i fler än 2048 Microsoft Entra-säkerhetsgrupper stöds inte för att logga in på databaser i Azure SQL Database, Azure SQL Managed Instance eller Azure Synapse.

FRÅN EXTERN PROVIDER

Anger att inloggningen är för Microsoft Entra-autentisering.

MED OBJECT_ID = "objectid"

Anger Microsoft Entra-objekt-ID. Om OBJECT_ID anges kan login_name vara ett användardefinierat alias som skapats från det ursprungliga huvudnamnet med ett bifogat suffix. Login_name måste vara ett unikt namn i sys.server_principals-vyn och följa alla andra sysname begränsningar. Mer information om hur du använder alternativet WITH OBJECT_ID finns i Microsoft Entra-inloggningar och användare med icke-unika visningsnamn.

Not

Om visningsnamnet för tjänstens huvudnamn inte är en dubblett ska standardsatsen CREATE LOGIN eller CREATE USER användas. tillägget WITH OBJECT_ID finns i offentliga förhandsversionenoch är ett felsökningsreparationsobjekt som implementerats för användning med icke-anpassade tjänstobjekt. Det är inte nödvändigt att använda det med ett unikt huvudnamn för tjänsten. Det går att använda WITH OBJECT_ID-tillägget för ett huvudnamn för tjänsten utan att lägga till ett suffix, men det är inte uppenbart vilket tjänsthuvudnamn som inloggningen eller användaren skapades för. Vi rekommenderar att du skapar ett alias med hjälp av ett suffix för att unikt identifiera tjänstens huvudnamn. Tillägget WITH OBJECT_ID stöds inte för SQL Server.

PASSWORD =lösenord

Anger lösenordet för SQL-inloggningen som skapas. Använd ett starkt lösenord. Mer information finns i Starka lösenord och lösenordsprincip. Från och med SQL Server 2012 (11.x) beräknas lagrad lösenordsinformation med SHA-512 av det saltade lösenordet.

Lösenord är skiftlägeskänsliga. Lösenord ska alltid vara minst 10 tecken långa och får inte överstiga 128 tecken. Lösenord kan innehålla a-z, A-Z, 0-9 och de flesta icke-numeriska tecken. Lösenord får inte innehålla enkla citattecken eller login_name.

SID = sid

Används för att återskapa en inloggning. Gäller endast för SQL Server-autentiseringsinloggningar. Anger SID för den nya SQL Server-autentiseringsinloggningen. Om det här alternativet inte används tilldelar SQL Server automatiskt ett SID. SID-strukturen beror på SQL Server-versionen. För SQL Database är detta en 32 byte (binär(32)) literal som består av 0x01060000000000640000000000000000 plus 16 byte som representerar ett GUID. Till exempel SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

Anmärkningar

  • Syntaxen för FROM EXTERNAL PROVIDER skapar huvudnamn på servernivå som mappats till Microsoft Entra-konton

  • När FROM EXTERNAL PROVIDER anges:

    • Login_name måste representera ett befintligt Microsoft Entra-konto (användare, grupp eller program) som är tillgängligt i Microsoft Entra-ID:t av den aktuella Azure SQL Managed Instance. För Microsoft Entra-huvudkonton kräver syntaxen CREATE LOGIN:

      • UserPrincipalName för Microsoft Entra-objektet för Microsoft Entra-användare.

      • DisplayName för Microsoft Entra-objektet för Microsoft Entra-grupper och program.

    • Alternativet LÖSENORD kan inte användas.

  • När FROM EXTERNAL PROVIDER-satsen utelämnas skapas som standard en vanlig SQL-inloggning.

  • Microsoft Entra-inloggningar visas i sys.server_principals, med kolumnvärdet typ inställt på E och type_desc inställt på EXTERNAL_LOGIN för inloggningar som mappats till Microsoft Entra-användare, eller skriv kolumnvärde inställt på X och type_desc värde inställt på EXTERNAL_GROUP för inloggningar som mappas till Microsoft Entra-grupper.

  • Ett skript för att överföra inloggningar finns i Så här överför du inloggningar och lösenord mellan instanser av SQL Server 2005 och SQL Server 2008.

  • När du skapar en inloggning aktiveras automatiskt den nya inloggningen och ger inloggningen behörigheten CONNECT SQL behörighet.

Viktig

Mer information om hur du arbetar med inloggningar och användare i Azure SQL Database finns i Hantera inloggningar i Azure SQL Database.

Inloggningar och behörigheter

Endast inloggningen på servernivå (skapad av etableringsprocessen) eller medlemmar i securityadmin eller sysadmin databasroll i master-databasen kan skapa nya inloggningar. Mer information finns i Server-Level Roller och ALTER SERVER ROLE.

Standardbehörigheten som beviljats en nyligen skapad Microsoft Entra-inloggning i master är: CONNECT SQL och VIEW ANY DATABASE.

SQL Managed Instance-inloggningar

  • Måste ha ändra behörigheten FÖR INLOGGNING på servern eller medlemskapet i någon av de fasta serverrollerna securityadmin eller sysadmin. Endast ett Microsoft Entra-konto med ALTER ANY LOGIN behörighet på servern eller medlemskap i någon av dessa roller kan köra kommandot create.

  • Om inloggningen är ett SQL-huvudnamn kan endast inloggningar som ingår i den sysadmin rollen använda kommandot create för att skapa inloggningar för ett Microsoft Entra-konto.

  • Måste vara medlem i samma Microsoft Entra-klientorganisation som Azure SQL Managed Instance.

När du har skapat en inloggning

När du har skapat en inloggning kan inloggningen ansluta till en hanterad instans, men har bara behörigheter som beviljats till offentliga roll. Överväg att utföra några av följande aktiviteter.

  • Information om hur du skapar en användare från en Microsoft Entra-inloggning finns i CREATE USER.

  • Om du vill bevilja behörigheter till en användare i en databas använder du instruktionen ALTER SERVER ROLE ... ADD MEMBER för att lägga till användaren i en av de inbyggda databasrollerna eller en anpassad roll, eller bevilja behörigheter till användaren direkt med hjälp av GRANT-instruktionen. Mer information finns i Icke-administratörsroller, Ytterligare administrativa roller på servernivå, ALTER SERVER ROLEoch GRANT-instruktion.

  • Om du vill bevilja serveromfattande behörigheter skapar du en databasanvändare i master-databasen och använder instruktionen ALTER SERVER ROLE ... ADD MEMBER för att lägga till användaren i någon av de administrativa serverrollerna. Mer information finns i Server-Level Roller och ALTER SERVER ROLEoch Server-roller.

    • Använd följande kommando för att lägga till rollen sysadmin i en Microsoft Entra-inloggning: ALTER SERVER ROLE sysadmin ADD MEMBER [MS_Entra_login]
  • Använd instruktionen GRANT för att bevilja behörigheter på servernivå till den nya inloggningen eller till en roll som innehåller inloggningen. Mer information finns i GRANT.

Begränsningar

  • Det går inte att ange en Microsoft Entra-inloggning mappad till en Microsoft Entra-grupp som databasägare.

  • Personifiering av Microsoft Entra-inloggningar med andra Microsoft Entra-huvudnamn stöds, till exempel satsen EXECUTE AS.

  • Endast serverhuvudnamn (inloggningar) som ingår i den sysadmin rollen kan utföra följande åtgärder för Microsoft Entra-huvudnamn:

    • KÖR SOM ANVÄNDARE
    • KÖR SOM INLOGGNING
  • Externa användare (gäst) som importerats från en annan Microsoft Entra-katalog kan inte konfigureras direkt som Microsoft Entra-administratör för SQL Managed Instance med hjälp av Azure-portalen. Anslut i stället en extern användare till en rolltilldelningsbar grupp och konfigurera gruppen som instansadministratör. Du kan använda PowerShell eller Azure CLI för att ange enskilda gästanvändare som instansadministratör.

  • Inloggningar replikeras inte till den sekundära instansen i en redundansgrupp. Inloggningar sparas i den master databasen, som är en systemdatabas, och därför inte är geo-replikerad. För att lösa detta måste inloggningar skapas med samma SID på den sekundära instansen.

-- Code to create login on the secondary instance
CREATE LOGIN foo WITH PASSWORD = '<enterStrongPasswordHere>', SID = <login_sid>;

Exempel

A. Skapa en inloggning med ett lösenord

I följande exempel skapas en inloggning för en viss användare och ett lösenord tilldelas.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO

B. Skapa en inloggning från ett SID

I följande exempel skapas först en SQL Server-autentiseringsinloggning och anger SID för inloggningen.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

Min fråga returnerar 0x241C11948AEEB749B0D22646DB1A19F2 som SID. Frågan returnerar ett annat värde. Följande instruktioner tar bort inloggningen och återskapar sedan inloggningen. Använd SID från föregående fråga.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

C. Skapa en inloggning för en Microsoft Entra-användare

I följande exempel skapas en inloggning för Microsoft Entra-kontot joe@contoso.onmicrosoft.com som finns i klientorganisationen med namnet contoso.

CREATE LOGIN [joe@contoso.onmicrosoft.com] FROM EXTERNAL PROVIDER

GO

D. Skapa en inloggning för ett federerat Microsoft Entra-konto

I följande exempel skapas en inloggning för ett federerat Microsoft Entra-konto bob@contoso.com som finns i en klientorganisation som heter contoso. Användaren bob kan också vara en gästanvändare.

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

E. Skapa en inloggning för en Microsoft Entra-grupp

I följande exempel skapas en inloggning för Microsoft Entra-gruppen mygroup- som finns i klientorganisationen contoso.

CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
GO

F. Skapa en inloggning för ett Microsoft Entra-program

I följande exempel skapas en inloggning för Microsoft Entra-programmet myapp som finns i klientorganisationen contoso.

CREATE LOGIN [myapp] FROM EXTERNAL PROVIDER

G. Kontrollera nyligen tillagda inloggningar

Kontrollera den nyligen tillagda inloggningen genom att köra följande T-SQL-kommando:

SELECT *
FROM sys.server_principals;
GO

* Azure Synapse
Analys *

 

Azure Synapse Analytics

Syntax

-- Syntax for Azure Synapse Analytics
CREATE LOGIN login_name
  { 
    FROM EXTERNAL PROVIDER
    | WITH <option_list> [,..] 
  }

<option_list> ::=
    PASSWORD = { 'password' }
    [ , SID = sid ]

Argument

Not

Microsoft Entra-serverhuvudkonton (inloggningar) för närvarande är i förhandsversion.

När den används med satsen FROM EXTERNAL PROVIDER anger inloggningen Microsoft Entra-huvudnamnet, som är en Microsoft Entra-användare, grupp eller program. Annars representerar inloggningen namnet på DEN SQL-inloggning som skapades.

Microsoft-användare och tjänsthuvudnamn (Microsoft Entra-program) som är medlemmar i fler än 2048 Microsoft Entra-säkerhetsgrupper stöds inte för att logga in på databasen i SQL Database, SQL Managed Instance eller Azure Synapse.

FRÅN EXTERN PROVIDER

Anger att inloggningen är för Microsoft Entra-autentisering.

login_name

Anger namnet på den inloggning som skapas. SQL Analytics i Azure Synapse stöder endast SQL-inloggningar. Om du vill skapa konton för Microsoft Entra-användare använder du instruktionen CREATE USER.

LÖSENORD ='lösenord'

Anger lösenordet för SQL-inloggningen som skapas. Använd ett starkt lösenord. Mer information finns i Starka lösenord och lösenordsprincip. Från och med SQL Server 2012 (11.x) beräknas lagrad lösenordsinformation med SHA-512 av det saltade lösenordet.

Lösenord är skiftlägeskänsliga. Lösenord ska alltid vara minst åtta tecken långa och får inte överstiga 128 tecken. Lösenord kan innehålla a-z, A-Z, 0-9 och de flesta icke-numeriska tecken. Lösenord får inte innehålla enkla citattecken eller login_name.

SID = sid

Används för att återskapa en inloggning. Gäller endast för SQL Server-autentiseringsinloggningar, inte Windows-autentiseringsinloggningar. Anger SID för den nya SQL Server-autentiseringsinloggningen. Om det här alternativet inte används tilldelar SQL Server automatiskt ett SID. SID-strukturen beror på SQL Server-versionen. För SQL Analytics är detta en 32 byte (binär(32)) literal som består av 0x01060000000000640000000000000000 plus 16 byte som representerar ett GUID. Till exempel SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

Anmärkningar

Inloggningar

Instruktionen CREATE LOGIN måste vara den enda instruktionen i en batch.

När du ansluter till Azure Synapse med hjälp av verktyg som sqlcmdmåste du lägga till SQL Analytics-servernamnet i inloggningsnamnet i anslutningssträngen med hjälp av <inloggning>@<server> notation. Om din inloggning till exempel är login1 och det fullständigt kvalificerade namnet på SQL Analytics-servern är servername.database.windows.netska parametern användarnamn i anslutningssträngen vara login1@servername. Eftersom den totala längden på användarnamn parametern är 128 tecken är login_name begränsad till 127 tecken minus längden på servernamnet. I exemplet kan login_name bara vara 117 tecken lång eftersom servername är 10 tecken.

Om du vill skapa en inloggning måste du vara ansluten till master-databasen.

Med SQL Server-regler kan du skapa en SQL Server-autentiseringsinloggning i formatet <inloggningsnamn>@<servernamn>. Om din SQL Database-server är myazureserver och inloggningen är myemail@contoso.commåste du ange inloggningen som myemail@contoso.com@myazureserver.

Inloggningsdata som krävs för att autentisera en anslutning och brandväggsregler på servernivå cachelagras tillfälligt i varje databas. Den här cachen uppdateras regelbundet. Om du vill framtvinga en uppdatering av autentiseringscacheminnet och se till att en databas har den senaste versionen av inloggningstabellen kör du DBCC FLUSHAUTHCACHE.

Mer information om inloggningar finns i Hantera databaser och inloggningar.

Behörigheter

Endast inloggningen på servernivå (skapad av etableringsprocessen) eller medlemmar i loginmanager databasrollen i master-databasen kan skapa nya inloggningar. Mer information finns i Server-Level Roller och ALTER SERVER ROLE.

När du har skapat en inloggning

När du har skapat en inloggning kan inloggningen ansluta till Azure Synapse men har bara behörigheter som beviljats till offentliga roll. Överväg att utföra några av följande aktiviteter.

  • Om du vill ansluta till en databas skapar du en databasanvändare för inloggningen. Mer information finns i CREATE USER.

  • Om du vill bevilja behörigheter till en användare i en databas använder du instruktionen ALTER SERVER ROLE ... ADD MEMBER för att lägga till användaren i en av de inbyggda databasrollerna eller en anpassad roll, eller bevilja behörigheter till användaren direkt med hjälp av GRANT-instruktionen. Mer information finns i Icke-administratörsroller, Ytterligare administrativa roller på servernivå, ALTER SERVER ROLEoch GRANT-instruktion.

  • Om du vill bevilja serveromfattande behörigheter skapar du en databasanvändare i master-databasen och använder instruktionen ALTER SERVER ROLE ... ADD MEMBER för att lägga till användaren i någon av de administrativa serverrollerna. Mer information finns i Server-Level Roller och ALTER SERVER ROLEoch Server-roller.

  • Använd instruktionen GRANT för att bevilja behörigheter på servernivå till den nya inloggningen eller till en roll som innehåller inloggningen. Mer information finns i GRANT.

Exempel

A. Skapa en inloggning med ett lösenord

I följande exempel skapas en inloggning för en viss användare och ett lösenord tilldelas.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO

B. Skapa en inloggning från ett SID

I följande exempel skapas först en SQL Server-autentiseringsinloggning och anger SID för inloggningen.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

Min fråga returnerar 0x241C11948AEEB749B0D22646DB1A19F2 som SID. Frågan returnerar ett annat värde. Följande instruktioner tar bort inloggningen och återskapar sedan inloggningen. Använd SID från föregående fråga.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

* Analys
Plattformssystem (PDW) *

 

Analysplattformssystem

Syntax

-- Syntax for Analytics Platform System
CREATE LOGIN loginName { WITH <option_list1> | FROM WINDOWS }

<option_list1> ::=
    PASSWORD = { 'password' } [ MUST_CHANGE ]
    [ , <option_list> [ ,... ] ]

<option_list> ::=
      CHECK_EXPIRATION = { ON | OFF}
    | CHECK_POLICY = { ON | OFF}

Argument

login_name

Anger namnet på den inloggning som skapas. Det finns fyra typer av inloggningar: SQL Server-inloggningar, Windows-inloggningar, certifikatmappade inloggningar och asymmetriska nyckelmappade inloggningar. När du skapar inloggningar som mappas från ett Windows-domänkonto måste du använda inloggningsnamnet före Windows 2000 i formatet [<domainName>\<login_name>]. Du kan inte använda ett UPN i formatet login_name@DomainName. Ett exempel finns i exempel D senare i den här artikeln. Autentiseringsinloggningar är typ sysname och måste följa reglerna för identifierare och får inte innehålla en\. Windows-inloggningar kan innehålla en\. Inloggningar baserade på Active Directory-användare är begränsade till namn på färre än 21 tecken.

PASSWORD ='lösenord'

Gäller endast för SQL Server-inloggningar. Anger lösenordet för inloggningen som skapas. Använd ett starkt lösenord. Mer information finns i Starka lösenord och lösenordsprincip. Från och med SQL Server 2012 (11.x) beräknas lagrad lösenordsinformation med SHA-512 av det saltade lösenordet.

Lösenord är skiftlägeskänsliga. Lösenord ska alltid vara minst åtta tecken långa och får inte överstiga 128 tecken. Lösenord kan innehålla a-z, A-Z, 0-9 och de flesta icke-numeriska tecken. Lösenord får inte innehålla enkla citattecken eller login_name.

MUST_CHANGE

Gäller endast för SQL Server-inloggningar. Om det här alternativet ingår uppmanar SQL Server användaren att ange ett nytt lösenord första gången den nya inloggningen används.

CHECK_EXPIRATION = { ON | AV }

Gäller endast för SQL Server-inloggningar. Anger om lösenordets förfalloprincip ska tillämpas vid den här inloggningen. Standardvärdet är AV.

CHECK_POLICY = { ON | AV }

Gäller endast för SQL Server-inloggningar. Anger att Windows-lösenordsprinciperna för den dator där SQL Server körs ska tillämpas vid den här inloggningen. Standardvärdet är PÅ.

Om Windows-principen kräver starka lösenord måste lösenord innehålla minst tre av följande fyra egenskaper:

  • Ett versaler (A-Z).
  • Ett gemener (a-z).
  • En siffra (0–9).
  • Ett av de icke-numeriska tecknen, till exempel blanksteg, _, @, *, ^, %, !, $, #eller &.

WINDOWS

Anger att inloggningen ska mappas till en Windows-inloggning.

Anmärkningar

  • Lösenord är skiftlägeskänsliga.
  • Om MUST_CHANGE anges måste CHECK_EXPIRATION och CHECK_POLICY anges till PÅ. Annars misslyckas -instruktionen.
  • En kombination av CHECK_POLICY = OFF och CHECK_EXPIRATION = ON stöds inte.
  • När CHECK_POLICY är inställt på AV återställs lockout_time och CHECK_EXPIRATION är inställt på OFF.

Viktig

CHECK_EXPIRATION och CHECK_POLICY tillämpas endast på Windows Server 2003 och senare versioner. Mer information finns i lösenordsprincip.

Behörigheter

Endast användare med ÄNDRA BEHÖRIGHETER FÖR INLOGGNING på servern eller medlemskapet i securityadmin fast serverroll kan skapa inloggningar. Mer information finns i Server-Level Roller och ALTER SERVER ROLE.

När du har skapat en inloggning

När du har skapat en inloggning kan inloggningen ansluta till Azure Synapse Analytics, men har bara behörighet till offentliga roll. Överväg att utföra några av följande aktiviteter.

  • Om du vill ansluta till en databas skapar du en databasanvändare för inloggningen. Mer information finns i CREATE USER.
  • Skapa en användardefinierad serverroll med hjälp av CREATE SERVER ROLE. Använd ALTER SERVER ROLE ... ADD MEMBER för att lägga till den nya inloggningen till den användardefinierade serverrollen. Mer information finns i CREATE SERVER ROLE and ALTER SERVER ROLE.
  • Använd sp_addsrvrolemember för att lägga till inloggningen till en fast serverroll. Mer information finns i Server-Level Roller och sp_addsrvrolemember.
  • Använd instruktionen GRANT för att bevilja behörigheter på servernivå till den nya inloggningen eller till en roll som innehåller inloggningen. Mer information finns i GRANT.

Exempel

G. Skapa en SQL Server-autentiseringsinloggning med ett lösenord

I följande exempel skapas inloggnings-Mary7 med lösenord A2c3456.

CREATE LOGIN Mary7 WITH PASSWORD = 'A2c3456$#' ;

H. Använda alternativ

I följande exempel skapas inloggnings-Mary8 med lösenord och några av de valfria argumenten.

CREATE LOGIN Mary8 WITH PASSWORD = 'A2c3456$#' MUST_CHANGE,
CHECK_EXPIRATION = ON,
CHECK_POLICY = ON;

Jag. Skapa en inloggning från ett Windows-domänkonto

I följande exempel skapas en inloggning från ett Windows-domänkonto med namnet Mary i domänen Contoso.

CREATE LOGIN [Contoso\Mary] FROM WINDOWS;
GO