Delen via


sp_addlogin (Transact-SQL)

Van toepassing op:SQL Server

Hiermee maakt u een nieuwe SQL Server-aanmelding waarmee een gebruiker verbinding kan maken met een exemplaar van SQL Server met behulp van SQL Server-verificatie.

Belangrijk

Deze functie wordt verwijderd in een toekomstige versie van SQL Server. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie. Gebruik in plaats daarvan CREATE LOGIN .

Belangrijk

Gebruik waar mogelijk Windows-verificatie.

Transact-SQL syntaxis-conventies

Syntaxis

sp_addlogin
    [ @loginame = ] N'loginame'
    [ , [ @passwd = ] N'passwd' ]
    [ , [ @defdb = ] N'defdb' ]
    [ , [ @deflanguage = ] N'deflanguage' ]
    [ , [ @sid = ] sid ]
    [ , [ @encryptopt = ] 'encryptopt' ]
[ ; ]

Argumenten

[ @loginame = ] N'loginame'

De naam van de aanmelding. @loginameis sysname, zonder standaardinstelling.

[ @passwd = ] N'passwd'

Het aanmeldingswachtwoord. @passwd is sysname, met een standaardwaarde van NULL.

Belangrijk

Gebruik geen leeg wachtwoord. Gebruik een sterk wachtwoord.

[ @defdb = ] N'defdb'

De standaarddatabase van de aanmelding (de database waarmee de aanmelding voor het eerst is verbonden nadat u zich hebt aangemeld). @defdb is sysname, met een standaardwaarde van master.

[ @deflanguage = ] N'deflanguage'

De standaardtaal van de aanmelding. @deflanguage is sysname, met een standaardwaarde van NULL. Als @deflanguage niet is opgegeven, wordt de standaard -@deflanguage van de nieuwe aanmelding ingesteld op de huidige standaardtaal van de server.

[ @sid = ] Sid

Het beveiligingsidentificatienummer (SID). @sid is varbinary(16), met een standaardwaarde van NULL. Als @sid is NULL, genereert het systeem een SID voor de nieuwe aanmelding. Ondanks het gebruik van een varbinary-gegevenstype moeten andere waarden dan NULL precies 16 bytes lang zijn en kunnen nog niet bestaan. Het opgeven van @sid is bijvoorbeeld handig wanneer u SQL Server-aanmeldingen scriptt of verplaatst van de ene server naar de andere en u wilt dat de aanmeldingen dezelfde SID op verschillende servers hebben.

[ @encryptopt = ] 'encryptopt'

Hiermee geeft u op of het wachtwoord wordt doorgegeven als duidelijke tekst of als de hash van het wachtwoord voor duidelijke tekst. Er vindt geen versleuteling plaats. Het woord 'versleutelen' wordt in deze discussie gebruikt ten behoeve van achterwaartse compatibiliteit. Als er een wachtwoord voor duidelijke tekst wordt doorgegeven, wordt het gehasht. De hash wordt opgeslagen. @encryptopt is varchar(20), en kan een van de volgende waarden zijn.

Waarde Beschrijving
NULL (standaard) Het wachtwoord wordt duidelijk doorgegeven.
skip_encryption Het wachtwoord is al gehasht. De database-engine moet de waarde opslaan zonder deze opnieuw op te slaan.
skip_encryption_old Het opgegeven wachtwoord is gehasht door een eerdere versie van SQL Server. De database-engine moet de waarde opslaan zonder deze opnieuw op te slaan. Deze optie is alleen beschikbaar voor upgradedoeleinden.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Opmerkingen

SQL Server-aanmeldingen kunnen tussen 1 en 128 tekens bevatten, inclusief letters, symbolen en cijfers. Aanmeldingen kunnen geen backslash (\) bevatten; een gereserveerde aanmeldingsnaam zijn, bijvoorbeeld sa of openbaar, of al bestaan; of een NULL lege tekenreeks.

Als de naam van een standaarddatabase wordt opgegeven, kunt u verbinding maken met de opgegeven database zonder de USE instructie uit te voeren. U kunt de standaarddatabase echter pas gebruiken als u toegang krijgt tot die database door de eigenaar van de database (met behulp van sp_adduser, sp_addrolemember) of sp_addrole.

Het SID-nummer is een GUID waarmee de aanmelding op de server uniek wordt geïdentificeerd.

Als u de standaardtaal van de server wijzigt, wordt de standaardtaal van bestaande aanmeldingen niet gewijzigd. Als u de standaardtaal van de server wilt wijzigen, gebruikt u sp_configure.

Het gebruik skip_encryption om wachtwoordhashing te onderdrukken is handig als het wachtwoord al is gehasht wanneer de aanmelding wordt toegevoegd aan SQL Server. Als het wachtwoord is gehasht door een eerdere versie van SQL Server, gebruikt u skip_encryption_old.

sp_addlogin kan niet worden uitgevoerd binnen een door de gebruiker gedefinieerde transactie.

In de volgende tabel ziet u verschillende opgeslagen procedures die worden gebruikt met sp_addlogin.

Opgeslagen procedure Beschrijving
sp_grantlogin Hiermee voegt u een Windows-gebruiker of -groep toe.
sp_password Hiermee wijzigt u het wachtwoord van een gebruiker.
sp_defaultdb Hiermee wijzigt u de standaarddatabase van een gebruiker.
sp_defaultlanguage Hiermee wijzigt u de standaardtaal van een gebruiker.

Machtigingen

Hiervoor is ALTER ANY LOGIN-machtiging vereist.

Voorbeelden

Eén. Een SQL Server-aanmelding maken

In het volgende voorbeeld wordt een SQL Server-aanmelding voor de gebruiker Victoriagemaakt zonder een standaarddatabase op te geven. Vervang <password> door een sterk wachtwoord.

EXECUTE sp_addlogin 'Victoria', '<password>';
GO

B. Een SQL Server-aanmelding maken met een standaarddatabase

In het volgende voorbeeld wordt een SQL Server-aanmelding gemaakt voor de gebruiker Alberten een standaarddatabase van corporate. Vervang <password> door een sterk wachtwoord.

EXECUTE sp_addlogin 'Albert', '<password>', 'corporate';
GO

C. Een SQL Server-aanmelding maken met een andere standaardtaal

In het volgende voorbeeld wordt een SQL Server-aanmelding gemaakt voor de gebruiker TzTodorov, een standaarddatabase van AdventureWorks2025en een standaardtaal van Bulgarian. Vervang <password> door een sterk wachtwoord.

EXECUTE sp_addlogin 'TzTodorov', '<password>', 'AdventureWorks2022', N'български';

D. Een SQL Server-aanmelding met een specifieke SID maken

In het volgende voorbeeld wordt een SQL Server-aanmelding voor de gebruiker Michaelgemaakt, een standaarddatabase van AdventureWorks2025, een standaardtaal van us_englishen een SID van 0x0123456789ABCDEF0123456789ABCDEF. Vervang <password> door een sterk wachtwoord.

EXECUTE sp_addlogin 'Michael', '<password>', 'AdventureWorks2022', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF;