Share via


sp_addlogin (Transact-SQL)

建立一項新的 SQL Server 登入,讓使用者利用 SQL Server 驗證來連接 SQL Server 的執行個體。

ms173768.note(zh-tw,SQL.90).gif重要事項:
未來的 Microsoft SQL Server 發行版本將不再提供此功能。請避免在新的開發工作中使用此功能,並計劃修改目前使用此功能的應用程式。 請改用 CREATE LOGIN
ms173768.security(zh-tw,SQL.90).gif安全性注意事項:
可能的話,請使用「Windows 驗證」。

主題連結圖示Transact-SQL 語法慣例

語法

sp_addlogin [ @loginame = ] 'login' 
    [ , [ @passwd = ] 'password' ] 
    [ , [ @defdb = ] 'database' ] 
    [ , [ @deflanguage = ] 'language' ] 
    [ , [ @sid = ] sid ] 
    [ , [ @encryptopt= ] 'encryption_option' ] 

引數

  • [ @loginame = ] 'login'
    這是登入的名稱。loginsysname,沒有預設值。
  • [ @passwd = ] 'password'
    這是登入密碼。passwordsysname,預設值是 NULL。

    ms173768.security(zh-tw,SQL.90).gif安全性注意事項:
    密碼不能空白。請使用增強式密碼。
  • [ @defdb=] 'database'
    這是登入的預設資料庫 (在登入之後,登入第一次連接的資料庫)。databasesysname,預設值是 master
  • [ @deflanguage = ] 'language'
    這是登入的預設語言。languagesysname,預設值是 NULL。如果未指定 language,新登入的預設 language 會設定為伺服器目前的預設語言。
  • [ @sid = ] 'sid'
    這是安全性識別碼 (SID)。sidvarbinary(16),預設值是 NULL。如果 sid 是 NULL,系統會產生新登入的 SID。儘管使用 varbinary 資料類型,NULL 以外的值,長度仍必須是正好 16 位元組,且必須尚未存在。指定 sid 非常有用,例如,當您在伺服器之間編寫 SQL Server 指令碼或移動這些登入,且在不同的伺服器中需要使用相同的 SID 時,就是如此。
  • [ @encryptopt = ] 'encryption_option'
    指定以明碼方式傳遞密碼,或以純文字密碼的雜湊來傳遞密碼。請注意,這裡並不進行任何加密。這項討論用到 "encrypt" 一字,是為了與舊版相容。如果傳入純文字密碼,就會雜湊這個密碼。這項雜湊會儲存起來。encryption_optionvarchar(20),它可以是下列值之一。

    描述

    NULL

    傳遞純文字密碼。這是預設值。

    skip_encryption

    密碼已雜湊。Database Engine 應該直接儲存這個值,不需要重新雜湊。

    skip_encryption_old

    提供的密碼是由舊版的 SQL Server 所雜湊的。Database Engine 應該直接儲存這個值,不需要重新雜湊。這個選項專用來升級。

傳回碼值

0 (成功) 或 1 (失敗)

備註

SQL Server 登入可以包含 1 到 128 個字元,其中包括字母、符號和數字。登入不能包含反斜線 (\);不能是保留的登入名稱,如 sapublic,或已經存在;不能是 NULL 或空字串 ('')。

如果提供了預設資料庫的名稱,您可以直接連接到指定的資料庫,不需要執行 USE 陳述式。不過,在資料庫擁有者 (使用 sp_addusersp_addrolemember) 或 sp_addrole 提供您預設資料庫的存取權之前,您無法使用這個資料庫。

SID 號碼是在伺服器中用來唯一識別登入的 GUID。

變更伺服器的預設語言並不會變更現有登入的預設語言。若要變更伺服器的預設語言,請使用 sp_configure

如果將登入加入 SQL Server 時,已經雜湊密碼,利用 skip_encryption 來抑制密碼的雜湊會很有用。如果密碼是舊版的 SQL Server 所雜湊的,請使用 skip_encryption_old

sp_addlogin 無法在使用者自訂交易內執行。

下表顯示搭配 sp_addlogin 來使用的若干預存程序。

預存程序 描述

sp_grantlogin

加入 Windows 使用者或群組。

sp_password

變更使用者的密碼。

sp_defaultdb

變更使用者的預設資料庫。

sp_defaultlanguage

變更使用者的預設語言。

權限

需要 ALTER ANY LOGIN 權限。

範例

A. 建立 SQL Server 登入

下列範例會建立 Victoria 使用者的 SQL Server 登入,密碼是 B1r12-36,不指定預設資料庫。

EXEC sp_addlogin 'Victoria', 'B1r12-36';
GO

B. 建立有預設資料庫的 SQL Server 登入

下列範例會建立 Albert 使用者的 SQL Server 登入,密碼是 B5432-3M6,預設資料庫是 corporate

EXEC sp_addlogin 'Albert', 'B5432-3M6', 'corporate';
GO

C. 建立有不同預設語言的 SQL Server 登入

下列範例會建立 TzTodorov 使用者的 SQL Server 登入,密碼是 709hLKH7chjfwv,預設資料庫是 AdventureWorks,預設語言是 Bulgarian

EXEC sp_addlogin 'TzTodorov', '709hLKH7chjfwv', 'AdventureWorks', N'български'

D. 建立有特定 SID 的 SQL Server 登入

下列範例會建立 Michael 使用者的 SQL Server 登入,密碼是 B548bmM%f6,預設資料庫是 AdventureWorks,預設語言是 us_english,SID 是 0x0123456789ABCDEF0123456789ABCDEF

EXEC sp_addlogin 'Michael', 'B548bmM%f6', 'AdventureWorks', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF

請參閱

參考

CREATE LOGIN (Transact-SQL)
sp_droplogin (Transact-SQL)
sp_helpuser (Transact-SQL)
sp_revokelogin (Transact-SQL)
xp_logininfo (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助