【问题标题】:Where does Sitecore stores the security restrictions for an item for each user roles?Sitecore 在哪里存储每个用户角色的项目的安全限制?
【发布时间】:2015-01-05 18:11:14
【问题描述】:

我需要知道具有特定角色的用户是否可以通过仅使用 Sitecore 数据库表而不使用 Sitecore API 来访问特定项目。所以我的问题是它存储在哪个表和哪个列中?

【问题讨论】:

    标签: sitecore sitecore6 sitecore7


    【解决方案1】:

    安全性针对__Security 字段中的单个项目存储。这是一个共享字段,因此将在SharedFields 表中。安全信息实际上是一个管道分隔的列表。注意:不建议直接访问架构,因为 Sitecore 可能会自行决定更改。

    下面的 SQL 将获得数据库中所有项目的安全性,根据需要更新 where 子句以获得您感兴趣的项目的安全性。

    SELECT  Id, ItemId, FieldId, Value, Created, Updated
    FROM    SharedFields
    WHERE   FieldId = '{DEC8D2D5-E3CF-48B6-A653-8E69E2716641}' /* Guid is the ID of the __Security field */
    

    结果:

    8AA88E96-2110-4BE1-A554-BAE9C60536FF    418B3B60-61E2-4E6C-B98F-061C88239087    DEC8D2D5-E3CF-48B6-A653-8E69E2716641    au|sitecore\agency|pd|-item:write|-item:admin|!*|+item:read|-item:delete|-item:create|-item:rename|pe|-item:write|-item:admin|!*|+item:read|-item:delete|-item:create|-item:rename| 2011-03-07 11:48:14.563 2011-03-07 11:48:14.563
    06A6DB6C-6DEF-40E0-8CF8-8E179888DBB8    F1AF5582-B6A2-4435-8307-2837C1644EFB    DEC8D2D5-E3CF-48B6-A653-8E69E2716641    au|sitecore\agency|pd|-item:write|-item:admin|!*|+item:read|-item:delete|-item:create|-item:rename|pe|-item:write|-item:admin|!*|+item:read|-item:delete|-item:create|-item:rename| 2011-03-07 11:48:14.270 2011-03-07 11:48:14.270
    

    【讨论】:

    • 感谢您的帮助。这正是我想要的:)
    【解决方案2】:

    SQL 架构没有像您想象的那样设置。权限存储在 Sitecore 项目字段中,而不是表中的特定列中。在 SQL 中,它只是内容项的 XML 数据的一部分。您可以解析它,但我不建议直接使用 SQL。您能解释一下为什么必须使用 SQL 来执行此操作吗?

    【讨论】:

    • 它实际上是一个管道分隔的列表而不是 XML。
    【解决方案3】:

    安全性与每个单独的项目相关联,并且在 _Security 字段中。 此字段是共享的并且位于 SharedFields 表中。 每个值都由管道分隔。 与用户角色相关的信息与角色 ID 和角色名称一起存储在用户表中。

    【讨论】:

      猜你喜欢
      • 2011-07-09
      • 2023-04-04
      • 1970-01-01
      • 2011-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-15
      • 1970-01-01
      相关资源
      最近更新 更多