sqlserver 建立使用者 sp_addlogin

來源:互聯網
上載者:User

標籤:

 

建立新的 Microsoft® SQL Server™ 登入,使使用者得以串連使用 SQL Server 身分識別驗證的 SQL Server 執行個體。  文法:

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

參數[ @loginame =] login

登入的名稱。login 的資料類型為 sysname,沒有預設設定。

[@passwd =] password

登入密碼。password 的資料類型為 sysname,預設設定為 NULL。sp_addlogin 執行後,password 被加密並儲存在系統資料表中。

[@defdb =] database

登入的預設資料庫(登入後登入所串連到的資料庫)。database 的資料類型為 sysname,預設設定為 master

[@deflanguage =] language

使用者登入到 SQL Server 時系統指派的預設語言。language 的資料類型為 sysname,預設設定為 NULL。如果沒有指定 language,那麼 language 被設定為伺服器當前的預設語言(由 sp_configure 組態變數 default language 定義)。更改伺服器的預設語言不會更改現有登入的預設語言。language 保持與添加登入時所使用的預設語言相同。

[@sid =] sid

安全標識號 (SID)。sid 的資料類型為 varbinary(16),預設設定為 NULL。如果 sid 為 NULL,則系統為新登入產生 SID。儘管使用 varbinary 資料類型,非 NULL 的值也必須正好為 16 個位元組長度,且不能事先存在。SID 很有用,例如,如果要編寫 SQL Server 登入指令碼,或要將 SQL Server 登入從一台伺服器移動到另一台,並且希望登入在伺服器間具有相同的 SID 時。

[@encryptopt =] encryption_option

指定當密碼儲存在系統資料表中時,密碼是否要加密。encryption_option 的資料類型為 varchar(20),可以是下列值之一。

描述
NULL 加密密碼。這是預設設定。
skip_encryption 密碼已加密。SQL Server 應該儲存值而且不用重新對其加密。
skip_encryption_old 已提供的密碼由 SQL Server 較早版本加密。SQL Server 應該儲存值而且不用重新對其加密。此選項只供升級使用。

 

傳回碼值

0(成功)或 1(失敗)

注釋

SQL Server 登入和密碼可包含 1 到 128 個字元,包括任何字母、符號和數字。但是,登入不能:

  1. 含有反斜線 (\)。
  2. 是保留的登入名稱稱,例如 sapublic,或者已經存在。
  3. 為 NULL,或為空白字串 (‘‘)。

如果提供預設資料庫的名稱,則不用執行 USE 語句就可以串連到指定的資料庫。但是,不能使用預設的資料庫,直到資料庫擁有者(使用 sp_addusersp_addrolemember)或 sp_addrole 授予對該資料庫的存取權限為止。

S識別碼是唯一的 Microsoft Windows NT® 使用者標識號。必須保證每個使用者的 S識別碼在 Windows NT 域中的唯一性。SQL Server 自動使用 Windows NT SID 標識 Windows NT 使用者和組,並為 SQL Server 登入產生一個 SID。

將登入添加到 SQL Server 時,如果密碼已經是加密的形式,則使用 skip_encryption 取消密碼加密是有用的。如果此密碼由以前的 SQL Server 版本加密,則使用 skip_encryption_old

不能從使用者定義的事務中執行 sp_addlogin

下表顯示了幾個與 sp_addlogin 一起使用的預存程序。

預存程序 描述
sp_grantlogin 添加 Windows NT 使用者或組。
sp_password 更改使用者密碼。
sp_defaultdb 更改使用者的預設資料庫。
sp_defaultlanguage 更改使用者的預設語言。

 

許可權

只有 sysadminsecurityadmin 固定伺服器角色的成員才可以執行 sp_addlogin

樣本A. 建立沒有密碼和主預設資料庫的登入 ID

下面的樣本為使用者 Victoria 建立一個 SQL Server 登入名,沒有指定密碼或預設資料庫。

EXEC sp_addlogin ‘Victoria‘
B. 建立登入 ID 和預設資料庫

此樣本為使用者 Albert 建立一個 SQL Server 登入,並指定密碼 food 以及名為 corporate 的預設資料庫。

EXEC sp_addlogin ‘Albert‘, ‘food‘, ‘corporate‘
C.建立使用其它預設語言的登入 ID

下面的樣本為使用者 Claire Picard 建立一個 SQL Server 登入名,密碼為"caniche",預設資料庫為 public_db,預設語言為 French。

EXEC sp_addlogin ‘Claire Picard‘, ‘caniche‘, ‘public_db‘, ‘french‘
D. 建立帶有特定 SID 的登入 ID

下面的樣本為使用者 Michael 建立一個 SQL Server 登入名,密碼為"chocolate",預設資料庫為 pubs,預設語言為 us_english,SID 為 0x0123456789ABCDEF0123456789ABCDEF。

EXEC sp_addlogin ‘Michael‘, ‘chocolate‘, ‘pubs‘, ‘us_english‘, 0x0123456789ABCDEF0123456789ABCDEF
E. 建立登入 ID 並且不加密密碼

下例在 Server1 上為使用者 Margaret 建立了一個密碼為"Rose"的 SQL Server 登入,再析取此加密密碼,然後使用前面加密的密碼將使用者登入 Margaret 添加到 Server2,但不對此密碼進一步加密。之後,使用者 Margaret 即可使用密碼"Rose"登入到 Server2

-- Server1EXEC sp_addlogin Margaret, Rose--ResultsNew login created.-- Extract encrypted password for MargaretSELECT CONVERT(VARBINARY(32), password)   FROM syslogins    WHERE name = ‘Margaret‘--Results------------------------------------------------------------------ 0x2131214A212B57304F5A552A3D513453(1 row(s) affected)-- Server2EXEC sp_addlogin ‘Margaret‘, 0x2131214A212B57304F5A552A3D513453,    @encryptopt = ‘skip_encryption‘

sqlserver 建立使用者 sp_addlogin

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.