Create roles with any name (name that suggests that it applies to visualization):
This role should be given access to the index-pattern on which the selected visualization is operated.
This role must be set to specific rights to the above-mentioned index-pattern and the visualization that you created.
If you want this role to be able to view only visualizations without Discovery, then this role should be given access only to Dashboards when creating the role.