设为首页 收藏本站
查看: 593|回复: 0

[经验分享] sql server 创建新用户

[复制链接]

尚未签到

发表于 2015-7-2 14:14:52 | 显示全部楼层 |阅读模式
  sp_addlogin
  创建新的 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 个字符,包括任何字母、符号和数字。但是,登录不能:


  • 含有反斜线 (\)。
  • 是保留的登录名称,例如 sapublic,或者已经存在。
  • 为 NULL,或为空字符串 ('')。
      如果提供默认数据库的名称,则不用执行 USE 语句就可以连接到指定的数据库。但是,不能使用默认的数据库,直到数据库所有者(使用
    sp_addusersp_addrolemember)或 sp_addrole
    授予对该数据库的访问权限为止。
      SID 号是唯一的 Microsoft Windows NT® 用户标识号。必须保证每个用户的 SID 号在 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

    -- Server1
    EXEC sp_addlogin Margaret, Rose
    --Results
    New login created.
    -- Extract encrypted password for Margaret
    SELECT CONVERT(VARBINARY(32), password)
    FROM syslogins
    WHERE name = 'Margaret'
    --Results
    ------------------------------------------------------------------
    0x2131214A212B57304F5A552A3D513453
    (1 row(s) affected)
    -- Server2
    EXEC sp_addlogin 'Margaret', 0x2131214A212B57304F5A552A3D513453,
    @encryptopt = 'skip_encryption'

  • 运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
    2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
    3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
    4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
    5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
    6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
    7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
    8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

    所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-82584-1-1.html 上篇帖子: SQL Server 不存在或访问被拒绝 下篇帖子: SQL Server 2005:一个使用新创建的User的问题和解决方法
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    扫码加入运维网微信交流群X

    扫码加入运维网微信交流群

    扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

    扫描微信二维码查看详情

    客服E-mail:kefu@iyunv.com 客服QQ:1061981298


    QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


    提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


    本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



    合作伙伴: 青云cloud

    快速回复 返回顶部 返回列表