При создании роли можно выбрать действия, которые ей доступны.
Как хранить ?
Пока идея такая:
таблица rolesConf (id-param-param-param)
И в таблицу роли (roles) (id-user_id-rolesConf.id)
думаю, можно использовать таблицы users (id, ...) и roles (id, ...), сделать между ними связь "многие ко многим" с помощью доп таблицы users_roles (user_id, role_id).
DemonFromIrk, на самом деле можно, если у пользователя может быть только одна роль(user, moderator, admin). В моём случае, можно одному пользовалелю дать несколько ролей(forum:read, forum:edit, news:read,...).