sys.sp_adduser (Transact-SQL)

Gäller för:SQL Server

Lägger till en ny användare i den nuvarande databasen.

Important

Den här funktionen tas bort i en framtida version av SQL Server. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen. Använd CREATE USER i stället.

Transact-SQL syntaxkonventioner

Syntax

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

Arguments

[ @loginame = ] N'loginame'

Namnet på SQL Server-inloggningen eller Windows-kontot. @loginame är sysname, utan standard. @loginame måste vara en befintlig SQL Server inloggning eller Windows konto.

[ @name_in_db = ] N'name_in_db'

Namnet på den nya databasanvändaren. @name_in_db är sysname, med standardvärdet .NULL Om @name_in_db inte specificeras, går namnet på den nya databasanvändaren tillbaka till @loginame. Att specificera @name_in_db ger den nya användaren ett namn i databasen som skiljer sig från servernivåns inloggningsnamn.

[ @grpname = ] N'grpname'

Databasrollen där den nya användaren blir medlem. @grpname är sysname, med standardvärdet .NULL @grpname måste vara en giltig databasroll i den nuvarande databasen.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Remarks

sp_adduser skapar också ett schema som är användarens namn.

Efter att en användare har lagts till använder du , DENY, och REVOKE satserna GRANTför att definiera de behörigheter som styr de aktiviteter användaren utför.

Använd sys.server_principals för att visa en lista över giltiga inloggningar.

Använd sp_helprole för att visa en lista över giltiga rollnamn. När du anger en roll får användaren automatiskt de behörigheter som är definierade för rollen. Om en roll inte är specificerad får användaren de rättigheter som ges till den offentliga standardrollen. För att lägga till en användare i en roll måste ett värde för @name_in_db anges. (@name_in_db kan vara samma som @loginame.)

Användargäst finns redan i varje databas. Att lägga till användargäst aktiverar denna användare, om den tidigare var inaktiverad. Som standard är användargäst inaktiverad i nya databaser.

sp_adduser kan inte köras i en användardefinierad transaktion.

Du kan inte lägga till en gästanvändare eftersom en gästanvändare redan finns i varje databas. För att aktivera gästanvändaren , ge gästen CONNECT-behörighet som visas:

GRANT CONNECT TO guest;
GO

Permissions

Kräver ägande av databasen.

Examples

A. Lägg till en databasanvändare

Följande exempel lägger till databasanvändaren Vidur till den befintliga Recruiting rollen i den aktuella databasen, med den befintliga SQL Server-inloggningenVidur.

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

B. Lägg till en databasanvändare med samma inloggnings-ID

Följande exempel lägger till användare Arvind i den aktuella databasen för SQL Server-inloggningenArvind. Denna användare tillhör den offentliga standardrollen.

EXECUTE sp_adduser 'Arvind';

C. Lägg till en databasanvändare med ett annat namn än dess servernivåinloggning

Följande exempel lägger till SQL Server-inloggning BjornR till den aktuella databasen som är ett användarnamn för Bjorn, och lägger till databasanvändare Bjorn i Production databasrollen.

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