> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omni.co/llms.txt
> Use this file to discover all available pages before exploring further.

# access_filters

> Limits access to rows in a dataset based on user attributes.

When enabled, users will be limited to rows in the topic that match their user attribute value. Refer to the [Controlling data access guide](/modeling/develop/data-access-control) for more information.

<Warning>
  Omni expects every user to have a non-null value for any assigned access filter. Errors will arise if the user attribute value is null.
</Warning>

## Syntax

```yaml theme={null}
access_filters:
  - field: "<view_name>.<field_name>"
    user_attribute: "<user_attribute_reference>"
    values_for_unfiltered: ["<value>", ...]
    enable_sql_like_wildcards: true/false
```

## Properties

<ParamField path="access_filters" type="object[]" required>
  An array of access filter configurations that limit row access based on user attributes.

  <Expandable title="access_filters properties" defaultOpen="true">
    <ParamField path="field" type="string" required>
      The field to use as a filter, specified in the format `view_name.field_name`.
    </ParamField>

    <ParamField path="user_attribute" type="string" required>
      The reference of the user attribute to filter on.
    </ParamField>

    <ParamField path="values_for_unfiltered" type="string[]">
      User attribute values that allow unrestricted access. Users with these values will not have the access filter applied.

      <Warning>
        Do not use the same value as the attribute's default. Any user who inherits the default — including new users before provisioning and auto-created [email-only users](/administration/users/email-only) — will receive unfiltered data.
      </Warning>
    </ParamField>

    <ParamField path="enable_sql_like_wildcards" type="boolean" default="false">
      Determines if exact match (`=`) or `%` wildcard syntax should be applied. Does not automatically add wildcards to the attribute value.

      To achieve pattern matching, manually include the `%` wildcard characters within the user attribute value itself (e.g., setting the attribute to `%@example.com%`). This allows for granular control, enabling exact matches for some users and partial matches for others using the same filter configuration.
    </ParamField>
  </Expandable>
</ParamField>

## Examples

```yaml title="Filter by brand_name" theme={null}
access_filters:
  - field: products.brand
    user_attribute: brand_name
    values_for_unfiltered: [all_brands]
    enable_sql_like_wildcards: true
```
