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 tillON
. Annars misslyckas -instruktionen. - En kombination av
CHECK_POLICY = OFF
ochCHECK_EXPIRATION = ON
stöds inte. - När CHECK_POLICY är inställt på
OFF
återställs lockout_time ochCHECK_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.
- Inloggningar som skapats från certifikat eller asymmetriska nycklar används endast för kodsignering. De kan inte användas för att ansluta till SQL Server. Du kan bara skapa en inloggning från ett certifikat eller en asymmetrisk nyckel när certifikatet eller den asymmetriska nyckeln redan finns i
master
. - 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.
- Serverns autentiseringsläge måste matcha inloggningstypen för att tillåta åtkomst.
- Information om hur du utformar ett behörighetssystem finns i Komma igång med behörigheter för databasmotorn.
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
Relaterat innehåll
* 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.net
ska 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.
Relaterat innehåll
* 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-kontonNä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
ochtype_desc
inställt på EXTERNAL_LOGIN för inloggningar som mappats till Microsoft Entra-användare, eller skriv kolumnvärde inställt påX
ochtype_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
ellersysadmin
. 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 instruktionenALTER 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 följande kommando för att lägga till rollen
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
Relaterat innehåll
* 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
- Lösenord är skiftlägeskänsliga.
- 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.
- Serverns autentiseringsläge måste matcha inloggningstypen för att tillåta åtkomst.
- Information om hur du utformar ett behörighetssystem finns i Komma igång med behörigheter för databasmotorn.
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.net
ska 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 instruktionenALTER 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
Relaterat innehåll
* 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.
- 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.
- Information om hur du utformar ett behörighetssystem finns i Komma igång med behörigheter för databasmotorn.
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
Relaterat innehåll
- Komma igång med behörigheter för databasmotorn
- Huvudnamn
- lösenordsprincip
- ÄNDRA INLOGGNING
- SLÄPP INLOGGNING
- EVENTDATA
- Skapa en inloggning