Both serve the different purposes, but they are generally used to help manage Group of common users.
Roles are used to manage access rights. You should have at least one role defined for each Functional user Group like: one or more for Business Users, one for Power Users, one or more for ETL Batch Users, one for DBA users etc. You can also define separate Roles based on object level access
Profiles are to centrally manage the allocation of system resources like temp and spool space and other parameters for Group of users. Same like Roles based of what operations different users would perform on database you can define different profiles for example your Business users may not require any temp space, but ETL users may require etc.
↧