我遇到了奇怪的情况。我有一个生产和测试报告服务器启动并运行,它们已经运行了一年多完美无瑕。星期一5/20一切正常。从昨天开始,我开始体验仅为一个用户返回NULL
的数据集。我有权访问两个域用户,我们将调用name
,另一个称为db
。 name
用户是我的普通用户,也是我登录PC的用户。 db
用户是我用于开发任务和故障排除的用户。 db
用户是受影响的用户。
有问题的数据集是一个非常简单的双行SQL选择,它列出了公司的分支,以便在报表服务器上的各种报表中使用。以下是该查询的通用表示:
select branchID, branchName from branch
此查询在SQL Server Management Studio中运行。以下是我为验证问题范围所做的工作:
我使用name
登录到生产和开发报告服务器,并运行Report X
,这取决于branch
数据集。报告输出是正确的。
我使用db
登录到生产和开发报告服务器并运行Report X
并且无法选择分支,因为分支组合框中没有值。
我在Report Builder 3.0中打开了数据集并在两个用户上执行了它。 name
用户获得了正确的结果集,但db
用户没有。
我问了几个用户,我相信他们可以运行Report X
并且运行正常。
我让我的网络管理员仔细检查db
的域权限,看起来很好。
我仔细检查了我用于报表服务器的ODBC驱动程序,并且连接良好。
我不知道要检查什么。有什么建议吗?
编辑1:我还与Report Y
用户一起运行db
。此报告不使用分支数据集,并且运行正常。唯一有问题的数据集是分支数据集。
编辑2:我使用问题用户登录SSMS并从分支运行select *,结果集为空。此外,我从设备运行select *,结果集有效 - 大约54,000条记录。所以它似乎是某些表的权限问题。我所知道的唯一一个是分支表。
答案 0 :(得分:0)
问题是由于权限造成的。我们在数据库上使用Windows身份验证。所以我的“db”用户只是一个域用户。由于允许域用户访问数据库,因此从来不是问题。但是,在上次软件升级期间,分支表已被视图替换。视图的构造可防止域用户看到视图的内容,除非他们也是数据库用户。修复是在数据库上创建一个“db”用户。