The URL database engine treats table names as URLs and exposes the data at those URLs as tables. It uses the url table function, which dispatches each URL to the appropriate backend, such as file, s3, HDFS, Azure Blob Storage, or HTTP.
Creating a database
When base_url is specified, relative table names are resolved against it. Without a base URL, every table name must be a complete URL.
Usage
The database owns no table definitions. Each table is resolved from its URL when it is used, so its schema is inferred from the current data. Table names can also use a full URL, for example web_data.s3://bucket/data/events.parquet“.
Access control
Creating this database requires READ and WRITE source grants on URL, regardless of table_engines_require_grant. Reading a table also requires a READ source grant for the resolved backend; writing requires the matching WRITE grant. For example:
For a database with a file:// base URL, a user needs READ ON FILE. On ClickHouse server, local files are additionally restricted to user_files_path.
See the SOURCES privileges for version and compatibility details.
See also
Last modified on September 10, 2026