下面是我在網(wǎng)上找的這兩個(gè)保留字的說(shuō)明:
sp_addlogin與ap_adduser兩個(gè)存儲(chǔ)過(guò)程的使用,以前沒(méi)用到過(guò),看書(shū)時(shí)也沒(méi)有注意,今天去給一個(gè)同事建數(shù)據(jù)庫(kù)和用戶,一下子用不起來(lái)了,汗!
在使用mysql時(shí),grant命令同時(shí)就創(chuàng)建了login與user,而在sybase等其它大型數(shù)據(jù)庫(kù)中卻不是這樣。要通過(guò)sp_addlogin和sp_adduser來(lái)增加用戶登錄及授權(quán)信息。
sp_addlogin:
功能:
將新的用戶帳號(hào)添加到Adaptive Server;在創(chuàng)建時(shí)指定特定登錄的口令有效期、最小口令長(zhǎng)度和所允許的最大失敗登錄次數(shù)。
語(yǔ)法:
sp_addlogin loginname,passwd[,defdb][,deflanguage][,fullname][,passwdexp][,minpwdlen][,maxfieldlogins],各個(gè)參數(shù)分別表示:登錄名,用戶口令,缺省數(shù)據(jù)庫(kù)名稱,缺省語(yǔ)言,全名,口令有效期,最小口令長(zhǎng)度,允許登錄失敗次數(shù);
sp_adduser:
功能:
將新的用戶添加到當(dāng)前數(shù)據(jù)庫(kù);
語(yǔ)法:
sp_adduser loginname[,name in db[,grpname]],各個(gè)參數(shù)分別表示:master.dbo.syslogins中的用戶名,也就是sp_addlogin加的loginname、在當(dāng)前數(shù)據(jù)庫(kù)中的用戶名、將用戶添加到數(shù)據(jù)庫(kù)中的現(xiàn)有組。
簡(jiǎn)言之:
addlogin:增加登陸用戶,使你能通過(guò)isql登陸
adduser:增加數(shù)據(jù)庫(kù)用戶,使你能use database
sp_addlogin
創(chuàng)建新的 SQL Server 登錄,該登錄允許用戶使用 SQL Server 身份驗(yàn)證連接到 SQL Server 實(shí)例。
后續(xù)版本的 Microsoft SQL Server 將刪除該功能。請(qǐng)避免在新的開(kāi)發(fā)工作中使用該功能,并應(yīng)著手修改當(dāng)前還在使用該功能的應(yīng)用程序。 請(qǐng)改用 CREATE LOGIN 。 |
請(qǐng)盡可能使用 Windows 身份驗(yàn)證。 |
語(yǔ)法
sp_addlogin [ @loginame = ] 'login' [ , [ @passwd = ] 'password' ] [ , [ @defdb = ] 'database' ] [ , [ @deflanguage = ] 'language' ] [ , [ @sid = ] sid ] [ , [ @encryptopt= ] 'encryption_option' ] |
備注
SQL Server 登錄名可以包含 1 到 128 個(gè)字符,其中包括字母、符號(hào)和數(shù)字。登錄名不能包含反斜杠 (\);它可以是保留登錄名,例如 sa 或 public,或已經(jīng)存在;或者是 NULL 或空字符串 (
''
)。
如果提供默認(rèn)數(shù)據(jù)庫(kù)的名稱,則不用執(zhí)行 USE 語(yǔ)句就可以連接到指定的數(shù)據(jù)庫(kù)。但是,除非數(shù)據(jù)庫(kù)所有者授予您(使用 sp_adduser 或 sp_addrolemember 或 sp_addrole )該數(shù)據(jù)庫(kù)的訪問(wèn)權(quán),否則不能使用默認(rèn)的數(shù)據(jù)庫(kù)。
SID 號(hào)是一個(gè) GUID,用于唯一地標(biāo)識(shí)服務(wù)器中的登錄名。
更改服務(wù)器的默認(rèn)語(yǔ)言將不會(huì)更改現(xiàn)有登錄的默認(rèn)語(yǔ)言。若要更改服務(wù)器的默認(rèn)語(yǔ)言,請(qǐng)使用 sp_configure 。
如果在將登錄名添加到 SQL Server 時(shí)已對(duì)密碼進(jìn)行了哈希運(yùn)算,則使用 skip_encryption 來(lái)取消密碼哈希運(yùn)算將是有用的。如果 SQL Server 的早期版本對(duì)密碼進(jìn)行了哈希運(yùn)算,則使用 skip_encryption_old。
不能在用戶定義事務(wù)內(nèi)執(zhí)行 sp_addlogin。
下表顯示了數(shù)個(gè)與 sp_addlogin 一起使用的存儲(chǔ)過(guò)程。
存儲(chǔ)過(guò)程 說(shuō)明
添加 Windows 用戶或組。 |
|
更改用戶密碼。 |
|
更改用戶的默認(rèn)數(shù)據(jù)庫(kù)。 |
|
更改用戶的默認(rèn)語(yǔ)言。 |
參數(shù)
登錄的名稱。login 的數(shù)據(jù)類型為 sysname,無(wú)默認(rèn)值。
登錄的密碼。password 的數(shù)據(jù)類型為 sysname,默認(rèn)值為 NULL。
不要使用空密碼。請(qǐng)使用強(qiáng)密碼。 |
登錄的默認(rèn)數(shù)據(jù)庫(kù)(在登錄后登錄首先連接到該數(shù)據(jù)庫(kù))。database 的數(shù)據(jù)類型為 sysname,默認(rèn)值為 master。
登錄的默認(rèn)語(yǔ)言。language 的數(shù)據(jù)類型為 sysname,默認(rèn)值為 NULL。如果未指定 language,則新登錄的默認(rèn) language 將設(shè)置為服務(wù)器的當(dāng)前默認(rèn)語(yǔ)言。
安全標(biāo)識(shí)號(hào) (SID)。sid 的數(shù)據(jù)類型為 varbinary(16),默認(rèn)值為 NULL。如果 sid 為 NULL,則系統(tǒng)將為新登錄生成 SID。不管是否使用 varbinary 數(shù)據(jù)類型,NULL 以外的值的長(zhǎng)度都必須正好是 16 個(gè)字節(jié),并且一定不能已經(jīng)存在。指定 sid 非常有用,例如,如果您要編寫(xiě)腳本,或?qū)?SQL Server 登錄從一臺(tái)服務(wù)器移動(dòng)到另一臺(tái)服務(wù)器,并且想讓登錄在不同服務(wù)器上使用相同的 SID,都需要指定它。
指定是以明文形式,還是以明文密碼的哈希運(yùn)算結(jié)果來(lái)傳遞密碼。注意,不進(jìn)行加密。在本討論中使用“加密”一詞是為了向后兼容。如果傳入明文密碼,將對(duì)它進(jìn)行哈希運(yùn)算。哈希值將存儲(chǔ)起來(lái)。encryption_option 的數(shù)據(jù)類型為 varchar(20),可以是下列值之一。
值 說(shuō)明
NULL |
以明文形式傳遞密碼。這是默認(rèn)值。 |
skip_encryption |
密碼已經(jīng)過(guò)哈希運(yùn)算。數(shù)據(jù)庫(kù)引擎應(yīng)存儲(chǔ)值,且不對(duì)其重新進(jìn)行哈希運(yùn)算。 |
skip_encryption_old |
所提供的密碼由 SQL Server 的早期版本進(jìn)行哈希運(yùn)算。數(shù)據(jù)庫(kù)引擎應(yīng)存儲(chǔ)值,且不對(duì)其重新進(jìn)行哈希運(yùn)算。提供該選項(xiàng)只是為了升級(jí)。 |
返回代碼值
0(成功)或 1(失敗)
權(quán)限
要求具有 ALTER ANY LOGIN 權(quán)限。
示例
A. 創(chuàng)建 SQL Server 登錄
以下示例為用戶
Victoria
創(chuàng)建 SQL Server 登錄,密碼為
B1r12-36
,并且不指定默認(rèn)數(shù)據(jù)庫(kù)。
EXEC sp_addlogin 'Victoria', 'B1r12-36'; GO |
B. 創(chuàng)建具有默認(rèn)數(shù)據(jù)庫(kù)的 SQL Server 登錄
以下示例為用戶
Albert
創(chuàng)建 SQL Server 登錄,密碼為
B5432-3M6
,默認(rèn)數(shù)據(jù)庫(kù)為
corporate
。
EXEC sp_addlogin 'Albert', '''B5432-3M6', 'corporate'; GO |
C. 創(chuàng)建具有不同默認(rèn)語(yǔ)言的 SQL Server 登錄
以下示例為用戶
TzTodorov
創(chuàng)建 SQL Server 登錄,密碼為
709hLKH7chjfwv
,默認(rèn)數(shù)據(jù)庫(kù)為
AdventureWorks
,默認(rèn)語(yǔ)言為
Bulgarian
。
EXEC sp_addlogin 'TzTodorov', '709hLKH7chjfwv', 'AdventureWorks', N'?????????' |
D. 創(chuàng)建具有特定 SID 的 SQL Server 登錄
以下示例為用戶
Michael
創(chuàng)建 SQL Server 登錄,密碼為
B548bmM%f6
,默認(rèn)數(shù)據(jù)庫(kù)為
AdventureWorks
,默認(rèn)語(yǔ)言為
us_english
,SID 為
0x0123456789ABCDEF0123456789ABCDEF
。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
