Hi,
Profile:
– Controls the Object level access.
Eg: If you want a set of users to get access to say “Account” object in salesforce, you will enable the type of access you want to provide on the Profile->Account Object. You can give Read Only, Read & Write, Create and Delete privilege as well.
– You can control which field a user can see by enabling the Field Level Security (FLS) in Profile settings.
– You Can assign different Record types and Page Layouts to a Profile to decide which fields the user with the particular profile can access.
Roles:
-Controls the data level access.
– Roles decide which type of data can be viewed by which user.
Eg: Manager can see all the data related to the Associates working under him.
– It maintains the record level access in the org.
Thanks