> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-vortex-format.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> URL 数据库引擎将通过 URL 寻址的数据以表的形式呈现。

# URL

`URL` 数据库引擎将表名视为 URL，并将这些 URL 上的数据以表的形式提供访问。它使用 [`url`](/zh/reference/functions/table-functions/url) 表函数，该函数会根据 URL 将请求分派到相应的后端，例如 `file`、`s3`、HDFS、Azure Blob 存储或 HTTP。

## 创建数据库

```sql theme={null}
CREATE DATABASE web_data
ENGINE = URL([base_url]);
```

指定 `base_url` 后，相对表名将基于该 URL 解析。若未提供 base URL，则每个表名都必须是完整的 URL。

## 用量

```sql theme={null}
CREATE DATABASE web_data
ENGINE = URL('https://example.com/data/');

SELECT * FROM web_data.`daily.csv`;
```

该数据库本身不保存任何表定义。每个表在使用时才根据其 URL 进行解析，因此其 schema 由当前数据推断得出。表名也可以使用完整的 URL，例如 `web_data.`s3://bucket/data/events.parquet\`\`。

## Access control

创建该 database 需要在 `URL` 上具备 `READ` 和 `WRITE` source 授权，无论 [`table_engines_require_grant`](/zh/reference/settings/server-settings/settings/other#table_engines_require_grant) 如何设置。读取 table 同样需要对解析后的 backend 具备 `READ` source 授权；写入则需要对应的 `WRITE` 授权。例如：

```sql theme={null}
GRANT READ, WRITE ON URL TO user_name;
GRANT READ, WRITE ON S3 TO user_name;
```

对于 base URL 为 `file://` 的数据库，用户需要 `READ ON FILE` 特权。在 ClickHouse server 上，本地文件还会被额外限制在 [`user_files_path`](/zh/reference/settings/server-settings/settings#user_files_path) 目录内。

有关版本与兼容性的详细信息，请参阅 [`SOURCES` 特权](/zh/reference/statements/grant#sources)。

## 参见

* [`url` 表函数](/zh/reference/functions/table-functions/url)
* [Filesystem 数据库引擎](/zh/reference/engines/database-engines/filesystem)
* [S3 数据库引擎](/zh/reference/engines/database-engines/s3)
