Transact-SQL参考sp_adduser为当前数据库中的新用户添加安全帐户。包括此过程是为了向后兼容。请使用sp_grantdbaccess。 语法sp_adduser[@loginame=]'login' [,[@name_in_db=]'user'] [,[@grpname=]'group']参数[@loginame=]'login' 用户的登录名称。login的数据类型是sysname,没有默认值。login必须是现有Microsoft®SQLServer™登录或MicrosoftWindowsNT®用户。 [@name_in_db=]'user' 新用户的名称。user的数据类型为sysname,其默认值为NULL。如果没有指定user,则用户的名称默认为login名称。指定user即为新用户在数据库中给予一个不同于SQLServer上的登录ID的名称。 [@grpname=]'group' 组或角色,新用户自动地成为其成员。group的数据类型为sysname,默认值为NULL。group必须是当前数据库中有效的组或角色。MicrosoftSQLServer7.0使用角色而不是组。 返回代码值0(成功)或1(失败)注释SQLServer用户名可以包含1到128个字符,包括字母、符号和数字。但是,用户名不能: 含有反斜线符号(/)。 为NULL,或为空字符串('')。 在添加完用户之后,可以使用GRANT、DENY和REVOKE语句来定义权限,这些权限控制着用户进行的活动。 使用sp_helplogin可显示有效登录名的列表。 使用sp_helprole可显示有效角色名的列表。当指定一个角色时,用户会自动地获得为该角色定义的那些权限。如果没有指定角色,则用户获得的权限将是授予默认public角色的权限。若要将用户添加到角色,必须提供username的值(username可与login_id相同)。 为了访问数据库,必须使用sp_adduser或sp_grantdbaccess对登录授予访问权,或者数据库中必须存在guest安全帐户。 不能在用户定义的事务内执行sp_adduser。 权限只有sysadmin固定服务器角色的dbo和成员才能执行sp_adduser。 示例 A.添加用户下面的示例使用现有的登录Victoria,将用户Victoria添加到当前数据库中现有的fort_mudge角色中。 EXECsp_adduser'Victoria','Victoria','fort_mudge' B.添加用户名(使用相同的登录ID) EXECsp_adduser'Margaret' C.添加用户(使用不同的用户名) EXECsp_adduser'Haroldq','Harold','fort_mudge' sp_adduser[@loginame=]'login'