请求访问使用者账户中的对象

本主题提供有关在安装 Snowflake Native App 之后,提供商如何请求使用者账户中的对象的权限或访问权限的一般信息。

关于 Snowflake Native App 中的权限和引用

在简单的 Snowflake Native App 中,所有必需的对象都是在安装过程中运行安装脚本时在 APPLICATION 对象内部创建的。在此上下文中,应用程序所需的所有对象都将在 APPLICATION 对象内创建,并处于可访问状态。使用者不需要执行任何操作。所需的所有必要权限都由应用程序使用应用程序角色管理。

然而,更复杂的 Snowflake Native App 可能需要在使用者账户内创建新对象,或访问使用者账户中的对象(位于 APPLICATION 对象之外)。在这种情况下,使用者必须授予必要的权限或授权访问权限,以允许 Snowflake Native App 创建或访问这些对象。

Snowflake Native App Framework 允许提供商执行以下操作:

  • 检查使用者账户中的账户级权限。

  • 请求账户级权限,以执行各种任务,例如创建数据库。

  • 使用 引用 以访问使用者账户中的现有对象。

提供商可以通过提出以下请求,来请求对使用者账户的访问权限:

全局权限

全局权限允许 Snowflake Native App 在使用者账户中执行操作。有关详细信息,请参阅 提供商可以向使用者请求的权限

引用

引用 允许应用程序访问使用者账户中的现有对象。提供商定义应用程序在 manifest.yml 文件中的应用程序请求。

在安装之后,使用者通过提供使用对象的 完全限定名称 创建的引用,允许访问对象。

引用允许应用程序使用逻辑名称访问对象。引用允许提供商创建应用程序,而不需要知道对象的特定名称或其父数据库和架构。

有关更多信息,请参阅 引用

使用者如何允许访问 Snowflake Native App

对于提供商在应用程序中定义的每个访问请求,使用者必须允许访问应用程序。对于全局权限和引用,使用者允许访问的方式有所不同。

授予 Snowflake Native App 全局权限

当提供商将应用程序配置为请求特定权限或对特定对象的访问权限时,使用者可通过两种方式向应用程序授予这些权限:

  • 如果提提供商使用 Python Permission SDK 实现用户界面,使用者使用 Snowsight 授予应用程序请求的权限。在使用者账户中,Python Permission SDK 会自动运行所需的 GRANT 语句。

  • 如果提供商未实现用户界面,则提供商必须向使用者传达应用程序所需的权限。例如,提供商必须向使用者传达有关使用者为向应用程序授予必要权限而必须运行的 SQL 语句。

    Snowflake 建议将此信息包含在README 文件中,使用者可将其作为 Snowflake Native App 列表的一部分查看。

授权对象访问权限

当提供商在 APPLICATION 对象以外的使用者账户中定义对象的引用时,使用者可通过两种方式在这些对象上创建引用,并将其与应用程序关联。

  • 如果提供商使用 Python Permission SDK 实现了用户界面,使用者会使用 Snowsight 将引用关联到应用程序所需的对象。请参阅 使用 Snowsight 管理访问请求

  • 如果提供商并未实现用户界面,则使用者必须手动创建引用,然后将其与 Snowflake Native App 关联。

语言: 中文