WordPress multiple user roles accessing on their information on one site?

You’ll need to combine some plugins and a couple of hooks.

Apart from the role management, I’d recommend Adminimize: it’s quite powerful to clean up the dashboard based on user roles.

And then:

/** 
 * When a registered user tries to visit a page for which he doesn't have access,
 * i.e.: http:/example.com/wp-admin/plugins.php,
 * WordPress displays a standard WP error message.
 * This will redirect instead of displaying the message:
 * "You do not have sufficient permissions to access this page."
 */
add_action( 'admin_page_access_denied', 'access_denied_wpse_57206' );

function access_denied_wpse_57206()
{
    wp_redirect( home_url() );
    exit();
}

/**
 * Redirect users of an specific role, if they try to access a URL
 * of an admin page that they would have capability to do
 * i.e.: http:/example.com/wp-admin/tools.php
 */
add_action( 'admin_init', 'admin_init_wpse_81841' );

function admin_init_wpse_81841()
{
    global $current_user, $pagenow;
    get_currentuserinfo();
    if ( 'tools.php' == $pagenow && user_can( $current_user, 'editor' ) ) 
    {
        wp_redirect( admin_url( 'index.php' ) );
        exit();
    }
    // Add as many conditions as necessary
}