title: Storing application permissions in a database
body: <p>I'm developing an application for our company that eventually will have lots of ways of restricting users to particular sections/modules. While the application is still small, I'd like to move to a new method of storing permissions that, as the application grows, will remain easy to maintain and query.</p>
  
  <p>Currently in our MySQL database we have a table called "user" which stores the user's ID, username and password. In a separate table called "user_acl" is the following:</p>
  
  <pre><code>user_acl_id
  acl_root
  acl_news_read
  acl_news_write
  acl_news_modify
  acl_reports_read
  acl_reports_write
  acl_reports_modify
  acl_users_read
  acl_users_write
  acl_users_modify
  </code></pre>
  
  <p>We only have 3 modules at the minute, but over time more will be created and permissions for each will need to be added.</p>
  
  <p>Rather than create a column for each permission, is there any other way or storing this information?</p>