存储过程:sp_addlogin和sp_adduser

系统 2664 0
今天在写一个存储过程,其命名"sp_adduser",一直弄不通。后来才去知道这个名字是保留字,汗!!!
下面是我在网上找的这两个保留字的说明:
sp_addlogin与ap_adduser两个存储过程的使用,以前没用到过,看书时也没有注意,今天去给一个同事建数据库和用户,一下子用不起来了,汗!

在使用mysql时,grant命令同时就创建了login与user,而在sybase等其它大型数据库中却不是这样。要通过sp_addlogin和sp_adduser来增加用户登录及授权信息。
sp_addlogin: 功能: 将新的用户帐号添加到Adaptive Server;在创建时指定特定登录的口令有效期、最小口令长度和所允许的最大失败登录次数。 语法: sp_addlogin loginname,passwd[,defdb][,deflanguage][,fullname][,passwdexp][,minpwdlen][,maxfieldlogins],各个参数分别表示:登录名,用户口令,缺省数据库名称,缺省语言,全名,口令有效期,最小口令长度,允许登录失败次数;
sp_adduser: 功能: 将新的用户添加到当前数据库; 语法: sp_adduser loginname[,name in db[,grpname]],各个参数分别表示:master.dbo.syslogins中的用户名,也就是sp_addlogin加的loginname、在当前数据库中的用户名、将用户添加到数据库中的现有组。
简言之:
addlogin:增加登陆用户,使你能通过isql登陆
adduser:增加数据库用户,使你能use database

sp_addlogin

创建新的 SQL Server 登录,该登录允许用户使用 SQL Server 身份验证连接到 SQL Server 实例。

重要事项:
后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并应着手修改当前还在使用该功能的应用程序。 请改用 CREATE LOGIN
安全性 注意:
请尽可能使用 Windows 身份验证。

语法

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

备注

<content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"></content>

SQL Server 登录名可以包含 1 到 128 个字符,其中包括字母、符号和数字。登录名不能包含反斜杠 (\);它可以是保留登录名,例如 sa 或 public,或已经存在;或者是 NULL 或空字符串 ( '' )。

如果提供默认数据库的名称,则不用执行 USE 语句就可以连接到指定的数据库。但是,除非数据库所有者授予您(使用 sp_adduser sp_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

更改用户的默认语言。

参数

<content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"></content>
[ @loginame = ] 'login'

登录的名称。login 的数据类型为 sysname,无默认值。

[ @passwd = ] 'password'

登录的密码。password 的数据类型为 sysname,默认值为 NULL。

安全性 注意:
不要使用空密码。请使用强密码。
[ @defdb = ] 'database'

登录的默认数据库(在登录后登录首先连接到该数据库)。database 的数据类型为 sysname,默认值为 master。

[ @deflanguage = ] 'language'

登录的默认语言。language 的数据类型为 sysname,默认值为 NULL。如果未指定 language,则新登录的默认 language 将设置为服务器的当前默认语言。

[ @sid = ] 'sid'

安全标识号 (SID)。sid 的数据类型为 varbinary(16),默认值为 NULL。如果 sid 为 NULL,则系统将为新登录生成 SID。不管是否使用 varbinary 数据类型,NULL 以外的值的长度都必须正好是 16 个字节,并且一定不能已经存在。指定 sid 非常有用,例如,如果您要编写脚本,或将 SQL Server 登录从一台服务器移动到另一台服务器,并且想让登录在不同服务器上使用相同的 SID,都需要指定它。

[ @encryptopt = ] 'encryption_option'

指定是以明文形式,还是以明文密码的哈希运算结果来传递密码。注意,不进行加密。在本讨论中使用“加密”一词是为了向后兼容。如果传入明文密码,将对它进行哈希运算。哈希值将存储起来。encryption_option 的数据类型为 varchar(20),可以是下列值之一。

值 说明

NULL

以明文形式传递密码。这是默认值。

skip_encryption

密码已经过哈希运算。数据库引擎应存储值,且不对其重新进行哈希运算。

skip_encryption_old

所提供的密码由 SQL Server 的早期版本进行哈希运算。数据库引擎应存储值,且不对其重新进行哈希运算。提供该选项只是为了升级。

返回代码值

<content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"></content>

0(成功)或 1(失败)

权限

<content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"></content>

要求具有 ALTER ANY LOGIN 权限。

示例

<content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"></content><sections xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"></sections>

A. 创建 SQL Server 登录

<content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"></content>

以下示例为用户 Victoria 创建 SQL Server 登录,密码为 B1r12-36 ,并且不指定默认数据库。

复制代码
                      EXEC sp_addlogin 'Victoria', 'B1r12-36';
GO
                    

B. 创建具有默认数据库的 SQL Server 登录

<content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"></content>

以下示例为用户 Albert 创建 SQL Server 登录,密码为 B5432-3M6 ,默认数据库为 corporate

复制代码
                      EXEC sp_addlogin 'Albert', '''B5432-3M6', 'corporate';
GO
                    

C. 创建具有不同默认语言的 SQL Server 登录

<content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"></content>

以下示例为用户 TzTodorov 创建 SQL Server 登录,密码为 709hLKH7chjfwv ,默认数据库为 AdventureWorks ,默认语言为 Bulgarian

复制代码
                      EXEC sp_addlogin 'TzTodorov', '709hLKH7chjfwv', 'AdventureWorks', N'?????????'
                    

D. 创建具有特定 SID 的 SQL Server 登录

<content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"></content>

以下示例为用户 Michael 创建 SQL Server 登录,密码为 B548bmM%f6 ,默认数据库为 AdventureWorks ,默认语言为 us_english ,SID 为 0x0123456789ABCDEF0123456789ABCDEF

存储过程:sp_addlogin和sp_adduser


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论