04-16-2026 12:32 PM
Databricks integrating with ServiceNow via Lakeflow Connect for data ingestion and looking for guidance on enforcing integration-user based data access.
Observed behaviour
This suggests OAuth is working , but the effective ServiceNow identity differs for running data ingestion in databricks (integration user vs ADID user), impacting data visibility.
Clarification Required:
Our goal is to use a consistent Databricks recommended best practice for production without relying on human ADID privileges.
04-16-2026 10:57 PM
@LokeshChikuru Have you checked the docs? This might help - https://docs.databricks.com/aws/en/ingestion/lakeflow-connect/servicenow-troubleshoot#-authenticatio...
04-17-2026 05:11 AM
Hi @Sumit_7
I have reviewed the configuration and do not see any issues with authentication to ServiceNow using the U2M approach (OAuth application with an Integration User).
However, I would like to understand which user context is used when the data fetch occurs during pipeline execution.
Based on my observations, the ServiceNow integration user is not being used during pipeline execution. As a result, no data is returned.
When ServiceNow admin privileges are assigned to the AD user who logged into the Databricks workspace, the ServiceNow table data becomes visible.
04-17-2026 08:23 AM
Hi, looking through some internal resources, it seems most likely to be down to ServiceNow-side ACLs, High Security Settings, or domain/scope restrictions overriding the admin role on system tables the connector queries.
Quick things to check:
- Run this curl as the integration user against ServiceNow: GET /api/now/v2/table/sys_db_object?sysparm_query=name=<your_table>&sysparm_fields=super_class.name. A 403 or empty result confirms it's a
ServiceNow-side ACL issue, not the connector. Test sys_dictionary the same way.
- Compare ACLs on sys_db_object, sys_dictionary, sys_glide_object between a working env (your DEV) and the failing one: that usually surfaces the difference fast.
- Check for glide.security.strict or custom ACLs overriding admin.
- Check whether the integration user is in a different application scope or domain than the data — domain separation isn't overridden by admin role.
- Confirm the admin role is state = "active" on sys_user_has_role, not "requested" or "inactive".
- There's a workspace-level pipeline flag (ingestionPipelineServiceNowNonAdminAccessSchemaFetchEnabled) for least-privilege setups , support can enable it if needed.
If you want to take OAuth identity off the table entirely while you debug, switching the connection to ROPC (integration user's username + password) removes any ambiguity about who's hitting ServiceNow at runtime. ServiceNow connector supports both —
https://docs.databricks.com/aws/en/ingestion/lakeflow-connect/servicenow-source-setup.
If none of the above sorts it, raise a support ticket with the curl response (status + body), the failing pipeline ID, and your workspace ID.
I hope this helps.
Thanks,
Emma
a month ago
Hi @emma_s
I’ve reviewed the setup and wanted to clarify the behavior I’m seeing with the ServiceNow connector and U2M OAuth.
The ServiceNow connection was created successfully using a U2M OAuth integration user, and that integration user has admin permissions in ServiceNow. The connection test succeeds without any issues.
However, during actual data ingestion, it appears that the connector is not executing purely in the context of the U2M OAuth integration user. Instead, ingestion seems to also depend on the Databricks workspace user who created or is running the pipeline. When that workspace user does not have the required ServiceNow permissions, the ingestion returns no data. If ServiceNow permissions are granted to the workspace user, the data becomes visible.
I’m trying to understand whether this behavior is expected with U2M OAuth—i.e., pipelines executing under the workspace user’s identity rather than strictly under the integration user—and whether app‑level (client credentials) authentication is the recommended approach for unattended ingestion scenarios where execution should not depend on individual Databricks users.
Any clarification from the Databricks team or others who have implemented this would be helpful.
3 weeks ago
We have been validating the Databricks–ServiceNow data integration using the Lakeflow ServiceNow connector and wanted to align with recommended and supported approach.
Below is a summary of what we have tested so far and where we need clarification.
Task 1: Create a ServiceNow Connection using U2M OAuth
Scenario | User Used during OAuth Redirect | Result |
Use Case 1 | OAuth integration user (Databricks_Integration) | Failed |
Use Case 2 | Data ingestion pipeline owner | Failed |
Use Case 3 | Local ServiceNow admin account | Failed |
Use Case 4 | ServiceNow AD‑synced admin user | Succeeded |
Only the ServiceNow AD‑synced admin user was able to successfully complete the OAuth authorization and create the connection.
Task 2: Create and Run a Data Ingestion Pipeline
Clarification Needed:
To move forward cleanly and align on best practices, we would like Databricks’ guidance on: