ALTER PACKAGES POLICY¶
修改现有 :doc:` 包策略 </developer-guide/udf/python/packages-policy>` 的属性。
在下一个使用包策略的 SQL 查询运行时,对包策略属性所做的任何更改才会生效。
语法¶
ALTER PACKAGES POLICY [ IF EXISTS ] <name> SET
[ ALLOWLIST = ( [ '<packageSpec>' ] [ , '<packageSpec>' ... ] ) ]
[ BLOCKLIST = ( [ '<packageSpec>' ] [ , '<packageSpec>' ... ] ) ]
[ ADDITIONAL_CREATION_BLOCKLIST = ( [ '<packageSpec>' ] [ , '<packageSpec>' ... ] ) ]
[ COMMENT = '<string_literal>' ]
ALTER PACKAGES POLICY [ IF EXISTS ] <name> UNSET
[ ALLOWLIST ]
[ BLOCKLIST ]
[ ADDITIONAL_CREATION_BLOCKLIST ]
[ COMMENT ]
参数¶
name
指定要更改的包策略的标识符。如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。
有关更多详细信息,请参阅 标识符要求。
SET ...
指定要为包策略设置的一个或多个属性。
ALLOWLIST = ( [ 'packageSpec' ] [ , 'packageSpec' ... ] )
指定允许的包规范列表。
默认值:
('*')
(即允许所有包)。BLOCKLIST = ( [ 'packageSpec' ] [ , 'packageSpec' ... ] )
指定被阻止的包规范列表。若要取消设置此参数,请指定一个空列表。
默认值:
()
(即不阻止任何包)。ADDITIONAL_CREATION_BLOCKLIST = ( [ 'packageSpec' ] [ , 'packageSpec' ... ] )
指定在创建时被阻止的包规范列表。若要取消设置此参数,请指定一个空列表。如果设置了
ADDITIONAL_CREATION_BLOCKLIST
,则它会在创建时追加到基本 BLOCKLIST。对于临时 UDFs 和匿名存储过程,ADDITIONAL_CREATION_BLOCKLIST
在创建和执行时都会追加到基本 BLOCKLIST。默认值:
()
(即不阻止任何包)。COMMENT = 'string_literal'
为包策略添加注释或覆盖现有注释。
UNSET ...
指定要为包策略取消设置的一个或多个属性,这会将其重置为默认值:
ALLOWLIST
BLOCKLIST
ADDITIONAL_CREATION_BLOCKLIST
COMMENT
您可以使用单个 ALTER 语句重置多个属性;但是,每个属性 必须 用逗号分隔。重置属性时,请仅指定名称;指定属性的值将返回错误。
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
OWNERSHIP |
包策略 |
OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
请注意,对架构中的对象进行操作还需要对父数据库和架构具有 USAGE 权限。
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
如果您想更新现有包策略并需要查看该策略的当前定义,请调用 GET_DDL 函数或运行 DESCRIBE PACKAGES POLICY 命令。
关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
示例¶
以下示例更新了包策略。
ALTER PACKAGES POLICY packages_policy_prod_1 SET ALLOWLIST = ('pandas==1.2.3');