La principal diferencia entre sesion y cookie es que la primera se borra todo su acceso o expirá completamente cuando el usuario cierra el navegador, la segunda permite almacenar información local permitiendo la entrada a la web(zonas privadas) sin importar que cierre el navegador, hasta que se cumpla el tiempo establecido(si existe) o se borre la cookie que contiene la información que permite accesar a las zonas privadas.
La practica comun, es que almacenes en la base de datos que nivel de usuario tiene cada quien, 0 y 1(por ejemplo) donde 0 es el usuario comun y 1 el usuario con derechos para ver zonas privadas. al momento del login guardas en una variable $_SESSION el nivel y en cada documento privado haces una comprobación sencilla:
Código PHP:
Ver originalif($nivel_usuario != 1){ //Para ser visualizada necesita nivel 1
echo "No puedes ver esta pagina";
//codigo de redirección, etc
}
Guardarlo en la base de datos?... de mi parte lo veo innecesario a no ser que quieras controlar tiempo de sessión almacenando el tiempo de entrada, sumando X cantidad de tiempo y haciendo la comprobación cada minuto o 5mins, esto implicaria renovación de tiempo etc.. gasto de recursos que a no ser que sea estrictamente necesario, no veo el porque....