日期:2014-05-19  浏览次数:20350 次

如何在sql server 2005 上创建一个新的用户
原来登陆数据库时,用的登陆名是sa,密码为空,请问如何用sql语言创建一个新的登陆名和密码,并赋予全部权限

------解决方案--------------------
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(失败)

------解决方案--------------------
CREATE LOGIN [ss] WITH PASSWORD= 'pwd ', DEFAULT_DATABASE=[test], DEFAULT_LANGUAGE=[简体中文], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO