what is the difference between connect and create session?
No, they are not. CONNECT is a role, it includes CREATE SESSION and also other system privileges, like CREATE TABLE etc... If user hav only the CREATE SESSION privilege and no roles, all he can do is to connect the database and perform queries on objects that have been granted to PUBLIC (like DUAL and USER_*).