What do you guys recommend, are the best practices on creating Roles and Profiles?
Right now I have 9 different roles according to user's resposibilities, rights and environment, and clearly most of them must have different priority. So I created 9 profiles, one for each role.
What do you think about this?
Roles are generally used to manage the access rights, while profiles are used to maintain user parameters / environment settings like spool space, account string etc.
In your case I think Roles are more appropriate as you are only dealing with the access rights.
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.