Skip to Content
SourcesSnowflake

Snowflake

Snowflake

Scan Snowflake tables and views with flexible authentication.

Category
Warehouse & Lakehouse
Source type
SNOWFLAKE
Produces
table

Snowflake is where a lot of organisations concentrate everything — the customer records, the event stream, the third-party data, the exports nobody remembers requesting. Scanning it usually produces the largest single picture of where sensitive data actually lives.

What you need to connect

An account identifier (for example xy12345.us-east-2.aws) and one of four authentication methods:

MethodWhat you supplyUse it when
PasswordUsername and passwordSimplest; fine for a dedicated service user
Key pairUsername and a private key PEMRecommended — no password to rotate, and what Snowflake pushes for service accounts
OAuth tokenAn OAuth access tokenYour identity provider issues short-lived tokens
External browserUsername only, browser-based SSOInteractive use against an SSO-protected account

Point the source at a warehouse and a role. Give that role USAGE on the warehouse and databases plus SELECT on the objects you want scanned — nothing more. Scanning consumes warehouse credits, and the sampling strategy is what keeps that bill small.

What Classifyre reads

Tables and views, in one database or every database the role can see, scoped by schema allow- and denylists or by an explicit object list.

Shared behaviour · SQL databases

One asset per table or view, never one per row. The asset carries the table's structure — database, schema, table name, object type, its columns and their types, and a row-count estimate — and its content is a sample of real rows, formatted so a detector reads actual values rather than a schema dump.

How many rows, and which ones, is entirely up to the sampling strategy. Large tables are paged through by key rather than by OFFSET, so a scan that stops halfway can resume from where it left off instead of re-reading from the top.

Read-only throughout. The connector issues catalog queries and bounded SELECTs. Nothing is written back, and a read-only account is the right account to give it.

Relationships come out of the engine's own catalog: foreign keys are recorded as REFERENCE links — useful, but they move no data, so they never become a lineage hop, and a view and the tables it reads from are recorded as FLOW — real lineage, with column-level detail parsed out of the view's SQL where the SQL makes that possible. See Lineage.

Metadata on every asset

Asset kind · table

FieldTypeAlways presentWhat it is
databasestringYesDatabase or catalog name
table_namestringYesTable name
table_typestringYesObject type (TABLE/VIEW)
schemastringNoSchema name
columnsobject[]NoColumns as {name, type} objects
row_countintegerNoEstimated number of rows
account_idstringNoSnowflake account identifier
object_typestringNoSource object type
lineageobjectNoLineage extraction settings and time window

Lineage

Lineage

Snowflake’s dependency metadata is read where the role has access to it, giving both view lineage (a view and the objects it reads) and table lineage. You can set a start time to bound how far back the lineage history is read.

Snowflake folds unquoted identifiers to upper case; Classifyre names objects the same way, which is what lets a Tableau workbook pointing at PROD.PUBLIC.ORDERS line up with the table a Snowflake scan produced. See Lineage & Relationships.

Worth knowing

  • Lineage needs privileges. Dependency and access history live in SNOWFLAKE.ACCOUNT_USAGE; a role without access to those views produces assets but no lineage, and the scan continues rather than failing.
  • Warehouse cost is under your control. Sampling caps how many rows each scan reads; a small warehouse with auto-suspend is the usual setup.
  • China regions need the alternate domain suffix, which is a setting.

Configuration

Beyond the fields below, every source also has the settings shared by all of them: the sampling strategy, the detectors to run, the scan schedule, and the compute limits for its scan jobs.

Required

Without these, the source will not save.

This section depends on which authentication method you pick — one of the following applies.

Snowflake Default Authenticator

FieldTypeRequiredWhat it doesDefault
authentication_type"DEFAULT_AUTHENTICATOR"Yes
account_idstringYesSnowflake account identifier (for example, xy12345.us-east-2.aws or LMAUONV-ONE_DATA_DEV)

Snowflake External Browser

FieldTypeRequiredWhat it doesDefault
authentication_type"EXTERNAL_BROWSER_AUTHENTICATOR"Yes
account_idstringYesSnowflake account identifier (for example, xy12345.us-east-2.aws or LMAUONV-ONE_DATA_DEV)

Snowflake Key-Pair Authentication

FieldTypeRequiredWhat it doesDefault
authentication_type"KEY_PAIR_AUTHENTICATOR"Yes
account_idstringYesSnowflake account identifier (for example, xy12345.us-east-2.aws or LMAUONV-ONE_DATA_DEV)

Snowflake OAuth Token

FieldTypeRequiredWhat it doesDefault
authentication_type"OAUTH_AUTHENTICATOR_TOKEN"Yes
account_idstringYesSnowflake account identifier (for example, xy12345.us-east-2.aws or LMAUONV-ONE_DATA_DEV)

Secrets

Stored encrypted and never shown again after you save them. See Configuration & Fields.

This section depends on which authentication method you pick — one of the following applies.

Snowflake Default Authenticator

FieldTypeRequiredWhat it doesDefault
usernamestringYesSnowflake login username
passwordstringYesSnowflake login password

Snowflake External Browser

FieldTypeRequiredWhat it doesDefault
usernamestringYesSnowflake login username

Snowflake Key-Pair Authentication

FieldTypeRequiredWhat it doesDefault
usernamestringYesSnowflake login username
private_keystringYesSnowflake private key PEM content. You can pass escaped newlines (\n).
private_key_passwordstringNoPassword for encrypted private key PEM (optional when key is not encrypted).

Snowflake OAuth Token

FieldTypeRequiredWhat it doesDefault
usernamestringYesSnowflake login username
tokenstringYesOAuth bearer token for Snowflake authentication

Optional

Everything you can tune. Sensible defaults apply when you leave them alone.

FieldTypeRequiredWhat it doesDefault
optionalobjectNono extra properties
connectionobjectNoSnowflake connection and session tuning options.no extra properties
connection.connect_argsobjectNoAdditional snowflake.connector.connect keyword arguments (advanced usage).{}
connection.connect_timeout_secondsintegerNoConnection timeout in secondsmin 1, max 30015
connection.rolestringNoSnowflake role to use for metadata and sampling queries
connection.snowflake_domainstringNoSnowflake domain suffix (use snowflakecomputing.cn for China regions).snowflakecomputing.com
connection.warehousestringNoSnowflake warehouse to use for metadata and sampling queries
extractionobjectNoLineage extraction controls for Snowflake metadata ingestion.no extra properties
extraction.include_table_lineagebooleanNoInclude table-level lineage links when dependency metadata is accessible.true
extraction.include_view_lineagebooleanNoInclude view-to-table/view lineage links when dependency metadata is accessible.true
extraction.start_timestringNoOptional lineage lower bound timestamp (ISO 8601).format date-time
scopeobjectNoDatabase, schema, and object selection scope.no extra properties
scope.databasestringNoSingle database to scan (optional when include_all_databases is true)
scope.exclude_databasesarrayNoDatabase denylist (exact database names)["SNOWFLAKE","SNOWFLAKE_SAMPLE_DATA"]
scope.exclude_databases[]stringNo
scope.exclude_schemasarrayNoSchema denylist (exact schema names)["INFORMATION_SCHEMA"]
scope.exclude_schemas[]stringNo
scope.include_all_databasesbooleanNoScan all visible databases except excluded system databasesfalse
scope.include_objectsarrayNoOptional object allowlist. Accepted forms: schema.object or database.schema.object
scope.include_objects[]stringNo
scope.include_schemasarrayNoOptional schema allowlist (exact schema names)
scope.include_schemas[]stringNo
scope.include_tablesbooleanNoInclude table assets in extractiontrue
scope.include_viewsbooleanNoInclude view assets in extractiontrue
scope.table_limitintegerNoOptional cap on number of table/view assets extractedmin 1
Last updated on