Sitecore 在哪里为每个用户角色存储项目的安全限制?

Where does Sitecore stores the security restrictions for an item for each user roles?

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

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

针对 __Security 字段中的单个项目存储安全性。这是一个共享字段,因此将在 SharedFields table 中。安全信息实际上是一个竖线分隔的列表。注意:不建议直接转到架构,因为它可能会由 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

安全与每个单独的项目相关联,并且在 _Security 字段中。 该字段是共享的,位于 SharedFields 表中。 每个值由竖线分隔。 与用户角色相关的信息存储在具有角色 ID 和角色名称的用户 table 中。