CREATE NETWORK RULE¶
Erstellt eine Netzwerkregel oder ersetzt eine bestehende.
- Siehe auch:
- ALTER NETWORK RULE , DROP NETWORK RULE , SHOW NETWORK RULES , DESCRIBE NETWORK RULE 
Syntax¶
CREATE [ OR REPLACE ] NETWORK RULE <name>
   TYPE = { IPV4 | AWSVPCEID | AZURELINKID | HOST_PORT | PRIVATE_HOST_PORT }
   VALUE_LIST = ( '<value>' [, '<value>', ... ] )
   MODE = { INGRESS | INTERNAL_STAGE | EGRESS }
   [ COMMENT = '<string_literal>' ]
Erforderliche Parameter¶
- name
- Bezeichner für die Netzwerkregel. - Der Bezeichnerwert muss mit einem alphabetischen Zeichen beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. - "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist die Groß-/Kleinschreibung zu beachten.- Weitere Details dazu finden Sie unter Anforderungen an Bezeichner. 
- TYPE = { IPV4 | AWSVPCEID | AZURELINKID | HOST_PORT | PRIVATE_HOST_PORT }
- Gibt den Typ der Netzwerkbezeichner an, die zugelassen oder blockiert werden. Eine Netzwerkregel kann nur einen Typ haben. - IPV4gibt an, dass die Netzwerkregel den Netzwerkdatenverkehr auf der Grundlage der IPv4-Adresse des Ursprungs der Anfrage zulässt oder blockiert.
- AWSVPCEIDgibt an, dass die Netzwerkregel den Netzwerkdatenverkehr über AWS PrivateLink zulässt oder blockiert.
- AZURELINKIDgibt an, dass die Netzwerkregel Netzwerkdatenverkehr über Azure Private Link zulässt oder blockiert.
- HOST_PORTgibt an, dass die Netzwerkregel ausgehenden Netzwerkdatenverkehr auf der Grundlage der Domäne des Anfrageziels zulässt.- Bei - TYPE = HOST_PORTsollte der Parameter- MODEauf- EGRESSgesetzt werden.
- PRIVATE_HOST_PORTzeigt an, dass die Netzwerkregel den ausgehenden Datenverkehr über die private Konnektivität zu einem externen Netzwerkstandort zulässt.- Wenn Sie - TYPE = PRIVATE_HOST_PORTverwenden, muss der Parameter- MODEauf- EGRESSfestgelegt sein.
 
- VALUE_LIST = ( 'value' [, 'value', ... ] )
- Gibt die Netzwerkbezeichner an, die zugelassen oder blockiert werden sollen. - Gültige Werte in der Liste werden durch den Typ der Netzwerkregel bestimmt: - Bei - TYPE = IPV4muss jeder Wert eine gültige IPv4-Adresse oder Adressbereich sein.
- Bei - TYPE = AWSVPCEIDmuss jeder Wert eine gültige VPCE ID sein. VPC-IDs werden nicht unterstützt.
- Bei - TYPE = AZURELINKIDmuss jeder Wert eine gültige LinkID eines privaten Azure-Endpunkts sein. Führen Sie die Funktion SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS aus, um die mit einem Konto verbundene LinkID abzurufen.
- Bei - TYPE = HOST_PORTmuss jeder Wert in eine gültige Domäne aufgelöst werden. Optional kann er auch einen Port oder einen Bereich von Ports enthalten.- In den meisten Fällen ist der gültige Port-Bereich 1–65.535. Wenn Sie keinen Port angeben, wird dieser standardmäßig auf 443 gesetzt. Wenn ein externer Netzwerkstandort dynamische Ports unterstützt, müssen Sie alle möglichen Ports angeben. - Um den Zugriff auf alle Ports zu erlauben, definieren Sie den Port als 0, z. B. - example.com:0.- Wenn der Wert in eine Domäne aufgelöst wird, können Sie ein einzelnes Sternchen als Platzhalterzeichen verwenden. Das Sternchen entspricht nur alphanumerischen Zeichen und Bindestrichen ( - -).- Platzhalter werden nur für eine einzige Ebene von Subdomänen unterstützt, wie in den folgenden Beispielen: - *.google.com
- snowflake-*.google.comund- snowflake*abc.google.com
 - Sie können Anfragen an alle ausgehenden Endpunkte zulassen, indem Sie - 0.0.0.0als Domäne angeben, wie in den folgenden Beispielen. Wenn Sie- 0.0.0.0als Domäne angeben, können Sie als Port-Werte nur 443 und 80 verwenden.- Zugriff auf alle Endpunkte an Port 80 zulassen - value_list = ('0.0.0.0:80');
- Zugriff auf alle Endpunkte an Port 443 zulassen - value_list = ('0.0.0.0:443');- value_list = ('0.0.0.0');
- Zugriff auf alle Endpunkte an Port 80 und 443 zulassen - value_list = ('0.0.0.0:80', '0.0.0.0:443');
 
- Wenn Sie - TYPE = PRIVATE_HOST_PORTwählen, geben Sie eine gültige Domäne an.- In den meisten Fällen ist der gültige Port-Bereich 1–65.535. Wenn Sie keinen Port angeben, wird dieser standardmäßig auf 443 gesetzt. Wenn ein externer Netzwerkstandort dynamische Ports unterstützt, müssen Sie alle möglichen Ports angeben. - Um den Zugriff auf alle Ports zu erlauben, definieren Sie den Port als 0, z. B. - example.com:0.
 
- MODE = { INGRESS | INTERNAL_STAGE | EGRESS }
- Gibt an, was durch die Netzwerkregel eingeschränkt wird. - INGRESS
- Das Verhalten im Modus - INGRESShängt vom Wert der Eigenschaft- TYPEder Netzwerkregel ab.- Bei - TYPE=IPV4kontrolliert die Netzwerkregel standardmäßig nur den Zugriff auf den Snowflake-Dienst.- Wenn der Kontoadministrator den Parameter ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES aktiviert, dann schützen - MODE=INGRESSund- TYPE=IPV4auch einen internen AWS-Stagingbereich.
- Bei - TYPE=AWSVPCEIDkontrolliert die Netzwerkregel nur den Zugriff auf den Snowflake-Dienst.
 
- INTERNAL_STAGE
- Erlaubt oder blockiert Anfragen an einen internen AWS-Stagingbereich, ohne den Zugriff auf den Snowflake-Dienst einzuschränken. Die Verwendung dieses Modus erfordert Folgendes: - Der Kontoadministrator muss den Parameter ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES aktivieren. 
- Die Eigenschaft - TYPEder Netzwerkregel muss- AWSVPCEIDsein.
 
- EGRESS
- Ermöglicht Snowflake, Anfragen an ein externes Ziel zu senden. 
 - Standard: - INGRESS
Optionale Parameter¶
- COMMENT = 'string_literal'
- Gibt einen Kommentar für die Netzwerkregel an. - Standard: Kein Wert 
Anforderungen an die Zugriffssteuerung¶
Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:
| Berechtigung | Objekt | Anmerkungen | 
|---|---|---|
| CREATE NETWORK RULE | Schema | Nur die Rollen ACCOUNTADMIN und SECURITYADMIN sowie der Schemaeigentümer haben standardmäßig diese Berechtigung. Sie kann je nach Bedarf weiteren Rollen erteilt werden. | 
USAGE-Berechtigung für die übergeordnete Datenbank und das Schema ist erforderlich, um Operationen an einem beliebigen Objekt in einem Schema durchzuführen. Beachten Sie, dass eine Rolle, die eine beliebige Berechtigung für ein Schema erhalten hat, es dieser Rolle erlaubt, das Schema aufzulösen. Zum Beispiel kann eine Rolle, der die CREATE-Berechtigung für ein Schema gewährt wurde, Objekte in diesem Schema erstellen, ohne auch USAGE für dieses Schema gewährt bekommen zu haben.
Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.
Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.
Nutzungshinweise¶
- Bei der Angabe von IP-Adressen für eine Netzwerkregel unterstützt Snowflake Bereiche von IP-Adressen unter Verwendung der Classless Inter-Domain Routing (CIDR)-Notation. - So stellt beispielsweise - 192.168.1.0/24alle IPv4-Adressen im Bereich- 192.168.1.0bis- 192.168.1.255dar.
- CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion. 
- Metadaten: - Achtung - Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „User“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake. 
Beispiele¶
Erstellen Sie eine Netzwerkregel, mit der der Datenverkehr von einem AWS S3-Endpunkt zum internen Stagingbereich zugelassen oder blockiert wird:
CREATE NETWORK RULE corporate_network
  TYPE = AWSVPCEID
  VALUE_LIST = ('vpce-123abc3420c1931')
  MODE = INTERNAL_STAGE
  COMMENT = 'corporate privatelink endpoint';
Erstellen Sie eine Netzwerkregel, mit der der Datenverkehr von einem Bereich von IP-Adressen zum Snowflake-Dienst und zum internen Stagingbereich zugelassen oder blockiert wird:
CREATE NETWORK RULE cloud_network
  TYPE = IPV4
  VALUE_LIST = ('47.88.25.32/27')
  COMMENT ='cloud egress ip range';
Erstellen Sie eine Netzwerkregel, die eine Kombination aus Domäne und Domäne/Port zulässt, wenn Snowflake Anforderungen an externe Ziele sendet:
CREATE NETWORK RULE external_access_rule
  TYPE = HOST_PORT
  MODE = EGRESS
  VALUE_LIST = ('example.com', 'example.com:443');
Erstellen Sie eine Netzwerkrege., um die ausgehende private Konnektivität für den externen Netzwerkzugang zu aktivieren:
CREATE OR REPLACE NETWORK RULE ext_network_access_db.network_rules.azure_sql_private_rule
  MODE = EGRESS
  TYPE = PRIVATE_HOST_PORT
  VALUE_LIST = ('externalaccessdemo.database.windows.net');