原帖地址:http://xuejie0924.blog.163.com/blog/static/288122742010259552793/
两个存储过程用来查询服务器和数据库的登录及用户情况。
sp_helplogins提供有关每个数据库中的登录及相关用户的信息
语法
sp_helplogins [ [ @LoginNamePattern = ] 'login' ] |
参数
[@LoginNamePattern = ] 'login'
登录名。login 的数据类型为sysname,默认值为 NULL。如果指定该参数,则 login 必须存在。如果未指定login,则返回有关所有登录的信息。
返回代码值
0(成功)或 1(失败)
结果集
第一个报告包含有关指定的每个登录的信息,如下表所示。
列名 | 数据类型 | 说明 |
LoginName | sysname | 登录名。 |
SID | varbinary(85) | 登录安全标识符 (SID)。 |
DefDBName | sysname | LoginName 在连接 SQL Server 实例时所使用的默认数据库。 |
DefLangName | sysname | LoginName 所使用的默认语言。 |
Auser | char(5) | Yes = LoginName 在一个数据库中有相关联的用户名。 No = LoginName 没有相关联的用户名。 |
ARemote | char(7) | Yes = LoginName 有相关联的远程登录。 No = LoginName 没有相关联的登录。 |
第二个报告包含有关与每个登录相关联的用户信息,如下表所示。
列名 | 数据类型 | 说明 |
LoginName | sysname | 登录名。 |
DBName | sysname | LoginName 在连接 SQL Server 实例时所使用的默认数据库。 |
UserName | sysname | 在 DBName 中,LoginName 所映射到的用户帐户以及 LoginName 所属的角色。 |
UserOrAlias | char(8) | MemberOf = UserName 是角色。 User = UserName 是用户帐户。 |
sp_helpuser
报告有关当前数据库中数据库级主体的信息
语法
sp_helpuser [ [ @name_in_db = ] 'security_account' ] |
参数
[@name_in_db = ] 'security_account'
当前数据库中数据库用户或数据库角色的名称。security_account必须存在于当前数据库中。security_account 的数据类型为sysname,默认值为 NULL。如果未指定 security_account,则 sp_helpuser 返回有关所有数据库主体的信息。
返回代码值
0(成功)或 1(失败)
结果集
下表显示当没有为 security_account 指定用户帐户,或者SQL Server 或 Windows 用户时的结果集。
列名 | 数据类型 | 说明 |
UserName | sysname | 当前数据库中的用户。 |
RoleName | sysname | UserName 所属的角色。 |
LoginName | sysname | UserName 的登录名。 |
DefDBName | sysname | UserName 的默认数据库。 |
DefSchemaName | sysname | 数据库用户的默认架构。 |
UserID | smallint | 当前数据库中 UserName 的 ID。 |
SID | smallint | 用户的安全标识号 (SID)。 |
下表显示未指定用户帐户,并且当前数据库中存在别名时的结果集。
列名 | 数据类型 | 说明 |
LoginName | sysname | 当前数据库中已经化名为用户名的登录名。 |
UserNameAliasedTo | sysname | 当前数据库中登录名要化名为的用户名。 |
下表显示当为 security_account 指定角色时的结果集。
列名 | 数据类型 | 说明 |
Role_name | sysname | 当前数据库中角色的名称。 |
Role_id | smallint | 当前数据库中角色的角色 ID。 |
Users_in_role | sysname | 当前数据库中角色的成员。 |
Userid | smallint | 角色成员的用户 ID。 |
备注
若要查看有关数据库角色成员身份的信息,请使用 sys.database_role_members。若要查看有关服务器角色成员的信息,请使用 sys.server_role_members;若要查看有关服务器级主体的信息,请使用 sys.server_principals。