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

时间:2015-01-05 02:12:39

标签: sitecore sitecore6 sitecore7

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

3 个答案:

答案 0 :(得分:4)

安全性存储在__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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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