Skip to content

加固指南

默认的Vanna设置旨在让您轻松快速地启动个人助手/概念验证。如果您希望将Vanna暴露给其他用户,可以按照以下指南来加强系统的安全性。

登录

初始前端没有登录系统。如果您正在实现自己的前端,您应该实现一个登录系统。

使用适当的数据库凭据

运行 vn.generate_sql 可以生成任何 SQL。如果您允许最终用户运行此函数,那么您应该使用具有适当范围权限的数据库凭据。

对于大多数数据分析用例,您希望使用只读数据库用户。根据您的具体需求,您可能还希望使用行级安全(RLS),这因数据库而异。

Plotly 代码

运行 vn.generate_plotly_code 可以生成任何可能需要的用于创建图表的Python代码。如果你将此函数暴露给最终用户,你应该使用沙盒环境。

你也可以重写vn.generate_plotly_code来返回一个空字符串。如果你这样做,那么vn.get_plotly_figure将使用确定的默认值。

内置Web应用程序中的执行流程

  • sql = vn.generate_sql(question=...): 生成任何SQL语句
  • vn.is_sql_valid(sql=...): 用于检查是否应运行SQL。您可以根据您的用例覆盖此函数。
  • df = vn.run_sql(sql=...): 运行SQL并返回一个pandas DataFrame
  • plotly_code = vn.generate_plotly_code(question=..., sql=..., df_metadata=...): 生成任何将生成plotly图形的Python代码
  • fig = vn.get_plotly_figure(plotly_code=..., df=...): 运行plotly代码并返回一个plotly图表

重写特定函数

请参阅行为定制文档了解如何覆盖特定函数。