了解所有者的权限和 Streamlit in Snowflake 应用程序

注意

此功能适用于 AWS、Microsoft Azure 和 GCP 区域 的账户。不支持 AWS PrivateLinkAzure 专用链接

本主题内容:

简介

Snowflake 中的 Streamlit 的模型与 :doc:` 存储过程 </developer-guide/stored-procedure/stored-procedures-rights>` 中的所有者权限模型密切对应。这消除了对服务账户令牌的需求,并且与 Snowflake 提供的身份验证、访问控制和网络策略功能相集成。

关于 Streamlit in Snowflake 中的所有者权限

Streamlit 应用程序在会话中遵循以下规则:

  • 使用所有者的权限来运行,而不是调用方的权限。

  • 使用应用程序所有者预置的仓库来运行。

  • 使用在其中创建了 Snowflake 中的 Streamlit 应用程序的数据库和架构,而不是调用方当前使用的数据库和架构。

关于应用程序的创建

创建 Streamlit 应用程序的权限是在架构级别授予的。

要使用 Streamlit in Snowflake 创建和编辑 Streamlit 应用程序,您必须使用对架构拥有 OWNERSHIP 权限或同时拥有以下两种权限的角色:

  • 在包含 Streamlit 应用程序的数据库上授予:

    • USAGE

  • 在包含 Streamlit 应用程序的架构上授予:

    • USAGE

    • CREATE STREAMLIT

    • CREATE STAGE

创建 Streamlit 应用程序后,它将在最初创建该应用程序的用户的角色下运行。

查看应用程序

应用程序所有者可以选择哪些角色有权使用应用程序。

  • 查看者可以与应用程序交互,并查看屏幕上显示的任何内容。

  • 与其他角色共享时,应用程序可以使用应用程序所有者角色的所有权限,无论是否为这些权限启用了 WITH GRANT。

对所有者权限的限制

由于应用程序使用所有者权限来运行,因此这些权限具有其他多项限制。这些限制影响以下内容:

  • 在 Streamlit 应用程序中调用存储过程时,可从存储过程内部调用的内置函数不可用。

  • 执行 ALTER USER 语句的能力。

  • 可从存储过程内部调用的 SQL 语句的类型。

  • 一些 DESCRIBE 命令。

有关更多信息,请参阅 对所有者权限存储过程的其他限制

所有者权限和应用程序安全性

在 Streamlit in Snowflake 中运行的 Streamlit 应用程序使用所有者权限运行,并与使用所有者权限运行的其他 Snowflake 对象遵循相同的安全模型。

尽管 Snowflake 提供了身份验证、基于角色的访问控制和管理控制等安全功能,但应用程序的安全性责任与应用程序创建者和所有者共担。

例如,向其他 Snowflake 用户授予具有写入权限的角色时,请务必小心。写入权限允许用户修改 Streamlit 应用程序。

通常,Snowflake 建议使用基于角色的访问控制和专用角色来创建和查看 Streamlit 应用程序。此外,在 Snowflake 中开发 Streamlit 应用程序时,应遵循适当的安全实践,并对账户中的 Streamlit 应用程序定期执行安全审核。

语言: 中文