You should think quite differently.
You should try to avoid hard-coded limits in your database.
That means, do not create a table that has columns for 'category' and 'subcategory',
becuase if you decide to add another level of categories, you have to rebuild your entire database.
Instead, build a parent-child relational model:
http://www.hvt-automation.nl/yapf/faq.php?cmd=viewitem&itemid=4
That is a little more work when running a query, but you will never run into limitations in the design.
For your permissions you can do several things.
If you really just want to list the categories that a user can see, then just create a table that contains the userid and the category he can see.
Note: create ONE record for EACH category that a user can see:
userid | category
1 | 6
1 | 3
1 | 4
2 | 9
5 | 3
5 | 8
in this case, user 2 can see category 9, and user 1 can see 3 4 and 6.
This means you can find all the categories that a user can see by doing
SELECT category FROM table WHERE userid=$iUserID;
A forum, a FAQ, what else do you need?