SHOW NETWORK RULES¶
列出系统中定义的所有网络规则。
语法¶
SHOW NETWORK RULES [ LIKE '<pattern>' ]
[ IN { ACCOUNT | DATABASE [ <db_name> ] | [ SCHEMA ] [ <schema_name> ] } ]
[ STARTS WITH '<name_string>' ]
[ LIMIT <rows> [ FROM '<name_string>' ] ]
参数¶
LIKE 'pattern'(可选)按对象名称筛选命令输出。筛选器使用 不区分大小写 的模式匹配,并支持 SQL 通配符(
%和_)。例如,以下模式返回 相同的 结果:
... LIKE '%testing%' ...... LIKE '%TESTING%' .... 默认:无值(不对输出应用筛选)。
IN ACCOUNT | [ DATABASE ] db_name | [ SCHEMA ] schema_name(可选)指定命令范围,该范围决定该命令是仅列出当前/指定数据库或架构的记录,还是列出整个账户的记录:
DATABASE或SCHEMA关键字不是必需的;可以通过仅指定数据库或架构名称来设置作用域。同样,如果会话当前正在使用数据库,则不需要数据库或架构名称:如果指定的
DATABASE或SCHEMA没有名称,并且会话当前没有正在使用的数据库,则该参数对输出没有影响。如果指定了
SCHEMA且指定了名称,并且会话当前没有正在使用的数据库,则架构名称 必须 完全限定于数据库名称(例如testdb.testschema)。
默认:取决于会话当前是否正在使用数据库:
数据库:
DATABASE是默认值(即该命令返回您有权在数据库中查看的对象)。无数据库:
ACCOUNT是默认值(即该命令返回您有权在账户中查看的对象)。
STARTS WITH 'name_string'(可选)根据对象名称开头显示的字符筛选命令输出。该字符串必须放在单引号内并且 区分大小写。
例如,以下字符串会返回 不同的 结果:
... STARTS WITH 'B' ...... STARTS WITH 'b' .... 默认:无值(不对输出应用筛选)
LIMIT rows [ FROM 'name_string' ](可选)限制返回的最大行数,同时还对结果启用“分页”功能。返回的实际行数可能小于指定的限制。例如,现有对象的数量小于指定的限制。
可选的
FROM 'name_string'分子句实际上会充当结果的“游标”。这样就可以提取对象名称与指定字符串匹配的第一行之后的指定行数:该字符串必须放在单引号内并且 区分大小写。
该字符串不必包含完整的对象名称;支持部分名称。
默认:无值(不对输出应用限制)
备注
对于支持
FROM 'name_string'和STARTS WITH 'name_string'的 SHOW 子句,您可以将这两个子句组合在同一语句中。但是,两个条件都必须满足,否则它们相互抵消,不返回任何结果。此外,对象按名称的字典顺序返回,因此
FROM 'name_string'仅返回字典值高于STARTS WITH 'name_string'所返回行的行。例如:
... STARTS WITH 'A' LIMIT ... FROM 'B'不会返回任何结果。... STARTS WITH 'B' LIMIT ... FROM 'A'不会返回任何结果。... STARTS WITH 'A' LIMIT ... FROM 'AB'将返回结果(如果有任何行与输入字符串匹配)。
输出¶
命令输出在以下列中提供网络规则属性和元数据:
列 |
描述 |
|---|---|
|
创建网络规则的日期和时间。 |
|
网络规则的名称。 |
|
包含在其中创建网络规则的架构的数据库。 |
|
在其中创建网络规则的架构。 |
|
对网络规则具有 OWNERSHIP 权限的角色。 |
|
与网络规则相关的描述性文本。 |
|
网络规则的 |
|
网络规则的 |
|
在网络规则的 |
|
拥有对象的角色类型,例如 |
访问控制要求¶
用于执行此 SQL 命令的 角色 必须至少具有以下 一项 权限:
权限 |
对象 |
备注 |
|---|---|---|
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 |
架构 |
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
该命令不需要正在运行的仓库即可执行。
该命令仅返回当前用户的当前角色已获授至少一项访问权限的对象。
MANAGE GRANTS 访问权限隐式允许其持有者查看账户中的每个对象。默认情况下,只有账户管理员(具有 ACCOUNTADMIN 角色的用户)和安全管理员(具有 SECURITYADMIN 角色的用户)才具有 MANAGE GRANTS 权限。
To post-process the output of this command, you can use the pipe operator (
->>) or the RESULT_SCAN function. Both constructs treat the output as a result set that you can query.The output column names for this command are generated in lowercase. If you consume a result set from this command with the pipe operator or the RESULT_SCAN function, use double-quoted identifiers for the column names in the query to ensure that they match the column names in the output that was scanned. For example, if the name of an output column is
type, then specify"type"for the identifier.
该命令 最多 返回指定对象类型的 1 万条记录,由用于执行命令的角色的访问权限决定。即使应用了筛选器,也不会返回任何超出 1 万条限制后的记录。
要查看存在超过 1 万条记录的结果,请在 Snowflake Information Schema 中查询相应的视图(如果存在)。
示例¶
列出所有网络规则:
SHOW NETWORK RULES;
To see the current list of Snowflake-managed network rules, run the following command:
SHOW NETWORK RULES IN SNOWFLAKE.NETWORK_SECURITY;
备注
The SHOW command doesn't explicitly expose IP addresses, only the number of IP addresses per rule.
To see your current Snowflake-managed network rules, including IP addresses, use the NETWORK_RULES 视图.