Search code examples
sitecoresitecore6sitecore7

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


I need to know if a user with a specific role has access to a specific item by just using the Sitecore database tables without using Sitecore API. So my question is in which table and in which column is it stored?


Solution

  • Security is stored against individual items in __Security field. This is a shared field and as such will be in SharedFields table. Security information is actually a pipe delimited list. NOTE: Going directly to the schema is not recommended as it may change at Sitecore's discretion.

    SQL below will get the security for all items in the database, update the where clause as required to get security for the items you are interested.

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

    Result:

    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