xp_logininfo返回sorting错误

我有一个生产SQL Server与系统数据库设置为Latin1_General_CI_AS,但不是所有的用户数据库是相同的,一些已经创build了SQL_Latin1_General_CP1_CI_AS和其他一些 – 他们已被创build为第三方应用程序安装的一部分。

在这些数据库中运行Exec xp_logininfo会导致典型的COLLATION错误。

有没有办法解决? (复制和重新编码xp_logininfo版本的备用sorting?更改所有dbs是相同的sorting规则,并遭受应用程序崩溃的影响..?)

所有的想法赞赏。


编辑#1我正在尝试审查,并最终转向pipe理安全和用户/login。 目前如果我运行:

use DB1 GO exec xp_logininfo go exec xp_logininfo 'domain\groupname' go exec xp_logininfo 'domain\username' go 

我得到3个数据集,1个所有用户的列表,2个组访问的详细信息和3个(凭借组成员身份)指定的login访问DB1中的数据

但是,如果我执行:

 use DB2 GO exec xp_logininfo go exec xp_logininfo 'domain\groupname' go exec xp_logininfo 'domain\username' go 

我得到3 x'无法解决“SQL_Latin1_General_CP1_CI_AS”之间的sorting规则冲突…“

DB1具有Latin1_General_CI_AS的整理
DB2具有SQL_Latin1_General_CP1_CI_AS的sorting规则

所有的系统数据库都是Latin1_General_CI_AS

希望这个解释多一点…

如果有人知道一个好的安全审计工具,那么这就是我要去的地方。 我有两个简单的问题:
1 – 谁可以访问这个数据库?
2 – 这个用户可以使用哪些数据库?

您使用的是什么版本的SQL – 我没有在SQL 2005中使用Latin1_General_CI_AS中的系统数据库和SQL_Latin1_General_CP1_CI_AS中的活动数据库来解决问题。 它是特定于特定版本的SQL吗?

Fatherjack,

你能提供更多的细节吗? 你用xp_logininfo使用任何参数吗? 你在每个数据库中运行它吗? 另外,最终目标是什么(即,你是否将信息存储在某个地方,或者这是一个试图执行xp_logininfo的应用程序?)

可能有一些其他系统特效的解决办法,但在我build议任何事情之前,我需要更多地了解你正在努力完成什么。 嗯…我想这是我的方式说“有什么要求?”

我实际上在我的Microsoft SQL Server 2008 R2(RTM) – 10.50.1600.1(X64)上遇到同样的问题。 然后我做了一些testing。 我发现如果我切换数据库上下文来掌握自己,错误不会发生。 接下来,我做了一个简单的伎俩,而不是调用:EXEC xp_logininfo @CurrentUser我做了:EXEC master.sys.xp_logininfo @CurrentUser和错误没有发生。 即使您使用的是其他版本,这也可能适用于您。