Hi Ravi -
In Tableau,a Role is a pre-set collection of "task-based" permissions like "view" or "move". It is not extensible - you can't create your own "Ravi's Role", although you can leverage our "Custom Role". Roles also concern content permissions, not data permissions.
You'll use standard content permissioning features (roles) to take care of a & b in your list. You'll leverage user filters to do c & d. The following help topics should give you everything you need: