LearnByReading Asked: 2016-08-24 10:22:28 +0800 CST2016-08-24 10:22:28 +0800 CST 2016-08-24 10:22:28 +0800 CST 如何区分不同类型的登录以及如何查看用户? 772 我有一个新手问题:我可以在 SQL Server 服务器登录名下看到不同的(大概)AD 组和 AD 帐户。但是,我无法判断其中一些用户是 AD 用户还是 AD 组。有人提到你可以看LOGO,如果是多人就是一个组,一个人就是一个用户。这是最好的告诉方式吗?好像不太靠谱 另外,如何查看 AD 组中的用户?我可以看到组,但我需要看到用户。我无权访问 AD 服务器。 太感谢了。 sql-server sql-server-2008 4 个回答 Voted Best Answer Tara Kizer 2016-08-24T10:30:14+08:002016-08-24T10:30:14+08:00 是的,如果是组还是用户,图标会发生变化。也可以查询sys.server_principals。 要查看 AD 组中的用户,您可以使用xp_logininfo. 只要 AD 组是 SQL Server 上的登录名,就可以使用xp_logininfo. 这是我写的一篇非常古老的博客文章。 句法: xp_logininfo [ [ @acctname = ] 'account_name' ] [ , [ @option = ] 'all' | 'members' ] [ , [ @privilege = ] variable_name OUTPUT] 例子: EXEC master.dbo.xp_logininfo 'DomainName\GroupName', 'members' Kenneth Fisher 2016-08-24T10:30:05+08:002016-08-24T10:30:05+08:00 据我所知,该徽标是可靠的。可能最简单的方法是查看sys.server_principals或sys.database_principals查看该type_desc列。 nkdbajoe 2016-08-24T10:31:06+08:002016-08-24T10:31:06+08:00 如果您在域中并且具有读取权限(大多数情况下具有读取权限),则可以运行一些 PowerShell 命令或简单的 DOS 命令。您将需要用于 PS 命令的 PowerShell 模块。 在 DOS 命令窗口中: NET 组 [组名] /DOMAIN 从 PowerShell: 导入模块 ActiveDirectory; 获取 ADGroupMember -Identity [组名] | 选择名称; jyao 2016-08-24T10:32:25+08:002016-08-24T10:32:25+08:00 这个查询应该可以帮助你。 select name, type_desc, is_disabled from sys.server_principals [Type_desc] 的值为 ASYMMETRIC_KEY_MAPPED_LOGIN CERTIFICATE_MAPPED_LOGIN SERVER_ROLE SQL_LOGIN WINDOWS_GROUP WINDOWS_LOGIN
是的,如果是组还是用户,图标会发生变化。也可以查询
sys.server_principals
。要查看 AD 组中的用户,您可以使用
xp_logininfo
. 只要 AD 组是 SQL Server 上的登录名,就可以使用xp_logininfo
. 这是我写的一篇非常古老的博客文章。句法:
例子:
据我所知,该徽标是可靠的。可能最简单的方法是查看
sys.server_principals
或sys.database_principals
查看该type_desc
列。如果您在域中并且具有读取权限(大多数情况下具有读取权限),则可以运行一些 PowerShell 命令或简单的 DOS 命令。您将需要用于 PS 命令的 PowerShell 模块。
在 DOS 命令窗口中:
从 PowerShell:
这个查询应该可以帮助你。
[Type_desc] 的值为