Hola,
Como dice miguel86, las sesiones se guardan en el servidor, lo que guarda el cliente es un ID que identifica a la sesión.
Lo que quieres hacer es simple, creas una clase para los usuarios, aquí te dejo un ejemplo:
- /***************************************** 
-  * Funciones para las cuentas 
-  ****************************************/ 
- class ACC { 
- 	public $id; // Account ID 
- 	public $auser; // User ID 
- 	public $pass; // Pass cifrada 
- 	public $level; // Nivel 
- 	/****************************************************** 
- 	 * Inicializar la sesión de la cuenta 
- 	 * $_SESSION['us'] = new ACC(<columnas del select>); 
- 	 *****************************************************/ 
- 	public function ACC($a) { 
- 		global $cnf; 
- 		list($this->id, $this->auser, $this->pass, $this->level) = $a; 
- 		$this->pass = md5(sha1($this->pass)); // ciframos la pass 
- 		$this->level = (isset($cnf['lvl'][$this->level]))- ? $cnf['lvl'][$this->level]:$cnf['lvl']['Defecto'];
 
- 		return; 
- 	} 
- } 
-   
Luego $cnf es el archivo de configuración, haces algo así:
-   
- $leer = 1; 
- $editar = 2; 
- $crear = 4; 
- $banear = 8; 
-   
- $cnf = array ( 'lvl' => array ( "Admin" => $leer | $editar | $crear | $banear, // Todos los permisos 
-                                   "Defecto" => $leer )); // Defecto será cuando el nivel seleccionado en la DB no exista 
-   
Entonces cuando inicie sesión pones:
- $_SESSION['us'] = new ACC($rs->fetch_row); // Les pasas los datos seleccionados 
-   
Pongamos que quieres comprobar los permisos de creación:
- if(isset($_SESSION['us'])){ // Si no está logeado 
- } 
-   
- if($_SESSION['us']->level & 4) 
- echo "Tiene permisos para crear"; 
- else echo "No tiene permisos para crear"; 
-   
Ojalá te sea de ayuda.
Saludos!