sys.sp_adduser (Transact-SQL)

Van toepassing op:SQL Server

Voegt een nieuwe gebruiker toe aan de huidige database.

Important

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 USER.

Transact-SQL syntaxis-conventies

Syntax

sys.sp_adduser
    [ @loginame = ] N'loginame'
    [ , [ @name_in_db = ] N'name_in_db' ]
    [ , [ @grpname = ] N'grpname' ]
[ ; ]

Arguments

[ @loginame = ] N'loginame'

De naam van de SQL Server-login of het Windows-account. @loginame is een systeemnaam, zonder standaard. @loginame moet een bestaande SQL Server inlog of Windows account zijn.

[ @name_in_db = ] N'name_in_db'

De naam van de nieuwe databasegebruiker. @name_in_db is sysname, met als standaard .NULL Als @name_in_db niet is gespecificeerd, wordt de naam van de nieuwe databasegebruiker standaard @loginame. Door @name_in_db te specificeren krijgt de nieuwe gebruiker een andere naam in de database dan de server-niveau inlognaam.

[ @grpname = ] N'grpname'

De databaserol waarvan de nieuwe gebruiker lid wordt. @grpname is sysname, met als standaard .NULL @grpname moet een geldige databaserol zijn in de huidige database.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Remarks

sp_adduser maakt ook een schema aan met de naam van de gebruiker.

Nadat een gebruiker is toegevoegd, gebruik je de GRANT, DENY, en REVOKE de instructies om de rechten te definiƫren die de activiteiten van de gebruiker regelen.

Gebruik sys.server_principals om een lijst met geldige inloggegevens weer te geven.

Gebruik sp_helprole om een lijst met geldige rolnamen weer te geven. Wanneer je een rol specificeert, krijgt de gebruiker automatisch de rechten die voor die rol zijn gedefinieerd. Als een rol niet wordt gespecificeerd, krijgt de gebruiker de rechten die aan de standaard publieke rol zijn toegekend. Om een gebruiker aan een rol toe te voegen, moet een waarde voor de @name_in_db worden opgegeven. (@name_in_db kan hetzelfde zijn als @loginame.)

Gebruikersgast bestaat al in elke database. Het toevoegen van gebruikersgast activeert deze gebruiker, als deze eerder was uitgeschakeld. Standaard is gebruikersgast uitgeschakeld in nieuwe databases.

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

Je kunt geen gastgebruiker toevoegen omdat er al een gastgebruiker in elke database aanwezig is. Om de gastgebruiker in te schakelen, geef de gast de CONNECT-toestemming zoals aangegeven:

GRANT CONNECT TO guest;
GO

Permissions

Vereist eigenaarschap van de database.

Examples

A. Voeg een databasegebruiker toe

Het volgende voorbeeld voegt de databasegebruiker Vidur toe aan de bestaande Recruiting rol in de huidige database, met gebruik van de bestaande SQL Server-loginVidur.

EXECUTE sp_adduser 'Vidur', 'Vidur', 'Recruiting';

B. Voeg een databasegebruiker toe met dezelfde login-ID

Het volgende voorbeeld voegt gebruiker Arvind toe aan de huidige database voor de SQL Server-login Arvind. Deze gebruiker behoort tot de standaard publieke rol.

EXECUTE sp_adduser 'Arvind';

C. Voeg een databasegebruiker toe met een andere naam dan zijn server-niveau login

Het volgende voorbeeld voegt SQL Server-login BjornR toe aan de huidige database die een gebruikersnaam van Bjornis, en voegt databasegebruiker Bjorn toe aan de Production databaserol.

EXECUTE sp_adduser 'BjornR', 'Bjorn', 'Production';