Integration User
Security User
Row-Level Security
If Tableau CRM users have access to a dataset, by default, they have access to all records in the dataset.
You can implement row-level security on a dataset to restrict access to certain records.
Some records contain sensitive data that shouldn’t be accessible to everyone.
Row-level security is implemented via security predicates and sharing inheritance. Most Salesforce orgs use a combination of the two.
Security Predicates
To implement row-level security, set a predicate for each dataset where you want to restrict access to records.
A predicate is a filter condition that defines row-level access to records in a dataset.
When a user submits a query against a dataset that has a predicate, Tableau CRM checks the predicate to determine which records the user can access. If you user doesn’t have access to a record, it is not returned.
Security predicates can be viewed by looking at the dataflow JSON file or the edit page for the dataset.
Field Level Security
You don’t configure field-level security in Tableau CRM, but you can implement it in Salesforce to restrict access to individual fields.
Tableau CRM dataflows run using Analytics Integration User permissions. If you want to enforce field-level security on Salesforce objects, you have to assign read access to the Analytics Integration User. Otherwise, you may see errors when your dataflow runs since Tableau CRM can’t see that data.
You can define field-level security…
- for multiple fields on a single permission set or profile
- for a single field on all profilesSharing Inheritance vs. Security Predicate
Sharing inheritance applies a Salesforce object’s sharing logic to the dataset. Ideal for orgs that don’t have many employees or shared records.
A security predicate is a manually assigned filter condition that defines dataset row access. It’s usually a backup to sharing inheritance for users with access to many of their own or shared records, like a CEO or dashboard builder.
Sharing Inheritance
Lets Tableau CRM apply the same sharing setup from Salesforce objects to your datasets.
Simple and accurate. Reduces the need for complicated security predicates for most objects.
Tradeoff is more time to run data syncs, dataflow and recipe jobs, and queries. The more complicated the sharing settings, the longer it takes.
Enable Sharing Inheritance
Sharing inheritance needs to be turned on and then you select the objects to use as a sharing source.
By default, sharing inheritance is already enabled in new Salesforce orgs.