Skip to main content

Dotenvx是如何支持DuckDB包含私密信息

· One min read
Libing Chen
Java程序员,兼全栈、Rust和AI开发

之前我们介绍了如何结合Dotenvx保护DuckDB的Secrets,主要是dotenvx是如何支持DuckDB secrets的, 但是DuckDB还支持数据库加密,加上之前的Parquet文件加密,所以在dotenvx 0.4.30版本,我们一并添加了。

让我看一个.env.duckdb的样例,如下:

# parquet encryption
DUCKDB__PARQUET__KEY256=01234567891123450123456789112345
# database encryption
DUCKDB__ENCRYPTED__MYDB=aes_password@./data/encrypted.duckdb
# secret example
DUCKDB__HTTP_SECRET=secret
DUCKDB__HTTP_SECRET__TYPE=http
DUCKDB__HTTP_SECRET__BEARER_TOKEN=xxxx
# s3 example
DUCKDB__AWS_S3=secret
DUCKDB__AWS_S3__TYPE=s3
DUCKDB__AWS_S3__KEY_ID=xxxx
DUCKDB__AWS_S3__SECRET=xxxx
DUCKDB__AWS_S3__REGION=xxxx

在该文件中,我们声明了Parquet文件加密的秘钥,同时声明数据库加密的信息,数据库名为小写的mydb。 最后,你只需要执行dotenvx link bin/duckdb,接下来执行./bin/duckdb就可以看到这些secret和密钥生效啦。

重要提醒: 上述的文件的私密信息的都是明文的,只是为了说明值的含义,实际使用中请使用dotenvx加密这些敏感信息。