Read-only access and query limits¶
Actian AI Analyst lists schemas and tables, previews rows, and runs the queries behind Models, Metrics, and answers. It never needs to change your data. How strictly a connection is held to reading depends on the connector, so the warehouse user you supply is your most important control.
Always use a read-only warehouse user¶
Create a dedicated warehouse user (or role) for AI Analyst, and grant it only read access to the databases, schemas, and tables you want to expose. Each connector's setup guide lists the grants to use. See the table in Connect a data source.
How each connector enforces read-only access¶
Each connector uses one of three levels. The level names are a way to group connectors in these docs, not labels you see in Studio.
| Level | What it means | Connectors |
|---|---|---|
| Engine | AI Analyst asks the warehouse to run its queries read-only, using a read-only transaction or a database opened read-only. | PostgreSQL, MySQL, MariaDB, Amazon Redshift, MotherDuck |
| Session | A read-only setting is applied to the session or query. | ClickHouse |
| Credential-only | Nothing in the connection protocol stops a write. Read-only access depends entirely on the privileges of the warehouse user you supply. | Microsoft SQL Server, Azure Synapse, Microsoft Fabric, BigQuery, Snowflake, Databricks, Actian, Ingres, Informix, ZenDB |
For credential-only connectors, the connection form and the Edit credentials dialog show:
This Connector cannot enforce read-only access itself. Supply a warehouse user that is limited to read-only privileges.
Snowflake
Snowflake checks privileges against the role a query runs as. If you leave Role blank, Snowflake uses the user's default role, so make sure that role is read-only too.
Checks on SQL that Steward runs¶
Steward can run a raw SQL statement against a connection when it needs to look at data directly. That tool accepts only a single SELECT statement (or WITH … SELECT) and rejects anything that would change data or structure. By default, Steward asks for approval before it runs the statement. Approvals are handled in Steward.
These checks add protection, but they don't replace a read-only warehouse user.
Query limits¶
| Limit | Value |
|---|---|
| Time limit per statement | 60 seconds for queries that run Models, Metrics, and SemQL, and for Steward's raw SQL. 30 seconds by default for other statements, such as schema browsing and sample previews. |
| Rows returned to an AI Analyst for a SemQL, Model, or Metric query | Up to 1,000 rows (100 by default) |
| Rows returned to Steward for a raw SQL statement | Up to 1,000 rows and 50 columns (200 rows by default) |
When a result has more rows than the limit, it is cut off and marked as truncated.
Databricks connections don't apply AI Analyst's own statement time limit. The SQL warehouse's own timeout settings apply instead.