Skip to main content
Applies to: Embedded ❌, Enterprise ✅ Before you can import data from external storage or attach an existing database, define a storage integration once per location. It is a namespace-scoped catalog object that stores the credential — neither operation names the integration directly, LanceDB matches the URI you read against whichever integration’s prefix covers it.

What each provider needs

Every credential option takes a Secret reference, never the value directly — create the Secret first.

Create one

AWS S3

Give either an IAM role to assume, or a static access key pair — mixing the two, or supplying only one half of the key pair, is refused.

Google Cloud Storage

The Secret holds the full service-account JSON key. GCP has no role-based alternative.

Azure Blob Storage

All four options are required together; there is no role-based alternative for Azure.

HuggingFace

HUGGINGFACE_TOKEN_SECRET is required to create this integration; omitting it is rejected, not treated as anonymous. For anonymous access at HuggingFace’s default rate limits, register no integration for that prefix at all.

Finish the AWS trust policy

An IAM role integration needs one step outside LanceDB: describing it returns the trust_policy and permissions_policy documents your role needs. Attach them in AWS, then describe the integration again and check access_verified to confirm LanceDB can assume the role. A static access key pair skips this step entirely. See Storage Integration for every provider’s complete option reference, S3’s two credential modes in full, and the output schema, or Storage Integration for the Python and SQL CRUD operations at a glance.

What to read next

Import Datasets

Read or import through the integration once it exists.

Attach Database

Attach an existing database at a location the integration covers.

Storage Integration

The complete SQL reference: every provider’s options and output columns.