了解所有者的权限和 Streamlit in Snowflake 应用程序¶
注意
此功能适用于 AWS、Microsoft Azure 和 GCP 区域 的账户。不支持 AWS PrivateLink 和 Azure 专用链接。
本主题内容:
简介¶
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 应用程序定期执行安全审核。