当前位置: 代码迷 >> Sql Server >> 更换用户登陆的语句如何写啊
  详细解决方案

更换用户登陆的语句如何写啊

热度:28   发布时间:2016-04-27 21:25:50.0
更换用户登陆的语句怎么写啊??
比如一开始我用SA登陆,然后又想用用户名san登陆,用语句怎么写啊

------解决方案--------------------
建立新的 Microsoft® SQL Server™ 登入,允許使用者利用「SQL Server 的帳戶驗證」來連線至 SQL Server 的執行個體。


安全性附註 儘可能使用「Windows 的帳戶驗證」。


語法
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 位元,而且不可是已存在的。在您編寫指令碼或將 SQL Server 登入從一伺服器移至另一伺服器時,而您希望登入在伺服器之間擁有相同的 SID,這時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 個字元,由字母、符號以及數字組成。但是登入不能:

含有反斜線 (\)。


為保留的登入名稱,例如 sa、public 或其他任何已存在的名稱。


是 NULL 或是空字串 ( ' ')。
若預設資料庫名稱已提供,您不需執行 USE 陳述式就可以連線至指定的資料庫。但在資料庫擁有者使用 sp_adduser、sp_addrolemember 或 sp_addrole 授與該資料庫存取權限之前,您還是無法使用預設資料庫。

安全識別碼 (SID) 是唯一的 Microsoft Windows NT® 使用者識別碼。Windows NT 網域中的每位使用者保證都有唯一的安全識別碼。SQL Server 會自動使用 Windows NT 安全識別碼來識別 Windows NT 使用者及群組,並會針對 SQL Server 登入產生安全識別碼。

若在新增登入至 SQL Server 時密碼已加密,則可使用 skip_encryption 來抑制密碼進行加密。若密碼已由舊版的 SQL Server 進行加密,則可使用 skip_encryption_old。

sp_addlogin 不能在使用者自訂的交易中執行。

以下資料表顯示幾種與 sp_addlogin 組合使用的預存程序:

預存程序 說明
sp_grantlogin 新增 Windows NT 使用者或群組
sp_password 變更使用者的密碼
sp_defaultdb 變更使用者的預設資料庫
sp_defaultlanguage 變更使用者的預設語言


權限
只有 sysadmin 及 securityadmin 固定伺服器角色的成員可執行 sp_addlogin。

範例
A. 建立主要預設資料庫的登入識別碼
此範例將建立使用者 Victoria 的 SQL Server 登入,但不指定預設資料庫。

EXEC sp_addlogin 'Victoria ', 'B1r12-36 '

B. 建立登入識別碼及預設資料庫
此範例將建立使用者 Albert 的 SQL Server 登入,密碼為 "B1r12-36 " ,且預設資料庫為 corporate。

EXEC sp_addlogin 'Albert ', 'B1r12-36 ', 'corporate '

C. 以不同預設語言建立登入識別碼
此範例將建立使用者 Claire Picard 的 SQL Server 登入,密碼為 "B1r12-36 ",預設資料庫為 public_db,而預設語言為法文。

EXEC sp_addlogin 'Claire Picard ', 'B1r12-36 ', 'public_db ', 'french '

D. 以特定安全識別碼建立登入識別碼
此範例將建立使用者 Michael 的 SQL Server 登入,密碼為 "B1r12-36, ",預設資料庫為 pubs,預設語言為 us_english,而安全識別碼為 0x0123456789ABCDEF0123456789ABCDEF。

EXEC sp_addlogin 'Michael ', 'B1r12-36 ', 'pubs ', 'us_english ', 0x0123456789ABCDEF0123456789ABCDEF

E. 建立登入識別碼且密碼不進行加密
此範例將建立使用者 Margaret 的 SQL Server 登入,其在 Server1 的密碼為 "B1r12-36 " ,萃取加密的密碼,然後利用之前加密的密碼新增使用者 Margaret 的登入至 Server2,但不進一步將密碼加密。接著使用者 Margaret 可以利用密碼 Rose 登入 Server2。
  相关解决方案