SSRS - 用户 Table
SSRS - Users Table
我进行了一些挖掘,但无法找到有关在 ReportServer 数据库中创建的用户 table 的具体信息?
首先我想检查一下用户进入这个 table 的切入点是什么?在我们的 table 中,看起来我们所有的域登录名都存在于这个 table 中......这让我想到了下一个问题......这些是否真的链接到域帐户(我想不是).我只想确保如果域帐户被禁用,该用户的任何订阅 'Owned' 都不会在下一次 运行 尝试时失败。
非常感谢对这个相对较暗的区域的任何帮助。
问候
克里斯
这是一篇文章的节选:
用户:此 table 包含有关报表服务器用户访问详细信息的详细信息,包括 运行 报表用户和发布报表的用户。
SSRS 保留其自己的 table 与其安全相关联的用户和组,因此即使用户帐户已从您的 Active Directory 系统中删除,您仍可以在 ReportServer 数据库中引用它
下面的查询将向您显示每个用户有权访问的报告:
SELECT u.UserName, r.RoleName, c.Path, c.Name
FROM dbo.Users as u
INNER JOIN dbo.PolicyUserRole as pr ON u.UserID=pr.UserID
INNER JOIN dbo.Roles as r on pr.RoleID = r.RoleID
INNER JOIN dbo.Catalog as c on pr.PolicyID = c.PolicyID
ORDER BY u.UserName
回答之前先提醒一下,SSRS数据库没有官方文档,所以下面的回答只是基于我产品的经验,所以可能有误/不完整。
what was the point of entry for users going into this table?
GetUserIDBySid
和 GetUserIDByName
存储过程,由 GetUserID
存储过程调用。
GetPrincipalID
存储过程,由 UpdatePolicyPrincipal
存储过程调用。
名称可能会让人混淆,因为实际上这些 SP 不仅 获取 用户 ID。
如果用户不存在于数据库中,他们插入它。
现在应该提出另一个问题:
When are these SPs executed?
显而易见的答案是 "when SSRS needs to get the User ID"。
这可以是,例如,当:
- 为该特定用户创建策略
- 用户执行报告
- 用户安排订阅
如果用户属于有权访问报告的组并且从未执行任何需要获取其用户 ID 的操作,则他不应出现在 Users 中table。
Are these actually linked to the domain accounts at all
不,如果您从 AD 中删除帐户,它将保留在 Users
table。
如果出于任何原因需要 link 它们,您可以使用的信息是:
- 用户登录:
UserName
- 安全 ID:
Sid
奖金question/answer:
What information does the Users
table contains?
我进行了一些挖掘,但无法找到有关在 ReportServer 数据库中创建的用户 table 的具体信息?
首先我想检查一下用户进入这个 table 的切入点是什么?在我们的 table 中,看起来我们所有的域登录名都存在于这个 table 中......这让我想到了下一个问题......这些是否真的链接到域帐户(我想不是).我只想确保如果域帐户被禁用,该用户的任何订阅 'Owned' 都不会在下一次 运行 尝试时失败。
非常感谢对这个相对较暗的区域的任何帮助。
问候 克里斯
这是一篇文章的节选:
用户:此 table 包含有关报表服务器用户访问详细信息的详细信息,包括 运行 报表用户和发布报表的用户。
SSRS 保留其自己的 table 与其安全相关联的用户和组,因此即使用户帐户已从您的 Active Directory 系统中删除,您仍可以在 ReportServer 数据库中引用它
下面的查询将向您显示每个用户有权访问的报告:
SELECT u.UserName, r.RoleName, c.Path, c.Name
FROM dbo.Users as u
INNER JOIN dbo.PolicyUserRole as pr ON u.UserID=pr.UserID
INNER JOIN dbo.Roles as r on pr.RoleID = r.RoleID
INNER JOIN dbo.Catalog as c on pr.PolicyID = c.PolicyID
ORDER BY u.UserName
回答之前先提醒一下,SSRS数据库没有官方文档,所以下面的回答只是基于我产品的经验,所以可能有误/不完整。
what was the point of entry for users going into this table?
GetUserIDBySid
和GetUserIDByName
存储过程,由GetUserID
存储过程调用。GetPrincipalID
存储过程,由UpdatePolicyPrincipal
存储过程调用。
名称可能会让人混淆,因为实际上这些 SP 不仅 获取 用户 ID。
如果用户不存在于数据库中,他们插入它。
现在应该提出另一个问题:
When are these SPs executed?
显而易见的答案是 "when SSRS needs to get the User ID"。
这可以是,例如,当:
- 为该特定用户创建策略
- 用户执行报告
- 用户安排订阅
如果用户属于有权访问报告的组并且从未执行任何需要获取其用户 ID 的操作,则他不应出现在 Users 中table。
Are these actually linked to the domain accounts at all
不,如果您从 AD 中删除帐户,它将保留在 Users
table。
如果出于任何原因需要 link 它们,您可以使用的信息是:
- 用户登录:
UserName
- 安全 ID:
Sid
奖金question/answer:
What information does the
Users
table contains?