- Verbinden mit Snowflake
- Laden von Daten in Snowflake
- Entladen von Daten aus Snowflake
- Verwenden von Snowflake
- Sicheres Freigeben von Daten in Snowflake
- Verwalten Ihrer Snowflake-Organisation
- Verwalten Ihres Snowflake-Kontos
- Verwalten der Sicherheit in Snowflake
- Verwalten von Governance in Snowflake
- Verwalten der Kosten in Snowflake
- Allgemeine Referenz
- SQL-Befehlsreferenz
- Zusammenfassung der Befehle
- Alle Befehle (alphabetisch)
- ALTER <Objekt>
- ALTER ACCOUNT
- ALTER API INTEGRATION
- ALTER CONNECTION
- ALTER DATABASE
- ALTER DATABASE ROLE
- ALTER EXTERNAL FUNCTION
- ALTER EXTERNAL TABLE
- ALTER FAILOVER GROUP
- ALTER FILE FORMAT
- ALTER FUNCTION
- ALTER INTEGRATION
- ALTER MASKING POLICY
- ALTER MATERIALIZED VIEW
- ALTER NETWORK POLICY
- ALTER NOTIFICATION INTEGRATION
- ALTER PASSWORD POLICY
- ALTER PIPE
- ALTER PROCEDURE
- ALTER REPLICATION GROUP
- ALTER RESOURCE MONITOR
- ALTER ROLE
- ALTER ROW ACCESS POLICY
- ALTER SCHEMA
- ALTER SECURITY INTEGRATION
- ALTER SECURITY INTEGRATION (External OAuth)
- ALTER SECURITY INTEGRATION (Snowflake OAuth)
- ALTER SECURITY INTEGRATION (SAML2)
- ALTER SECURITY INTEGRATION (SCIM)
- ALTER SEQUENCE
- ALTER SESSION
- ALTER SESSION POLICY
- ALTER SHARE
- ALTER STAGE
- ALTER STORAGE INTEGRATION
- ALTER STREAM
- ALTER TABLE
- ALTER TABLE … ALTER COLUMN
- ALTER TAG
- ALTER TASK
- ALTER USER
- ALTER VIEW
- ALTER WAREHOUSE
- BEGIN
- CALL
- CALL (mit anonymen Prozeduren)
- COMMENT
- COMMIT
- COPY INTO <Speicherort>
- COPY INTO <Tabelle>
- CREATE <Objekt>
- CREATE ACCOUNT
- CREATE API INTEGRATION
- CREATE <Objekt> … CLONE
- CREATE CONNECTION
- CREATE DATABASE
- CREATE DATABASE ROLE
- CREATE EXTERNAL FUNCTION
- CREATE EXTERNAL TABLE
- CREATE FAILOVER GROUP
- CREATE FILE FORMAT
- CREATE FUNCTION
- CREATE INTEGRATION
- CREATE MANAGED ACCOUNT
- CREATE MASKING POLICY
- CREATE MATERIALIZED VIEW
- CREATE NETWORK POLICY
- CREATE NOTIFICATION INTEGRATION
- CREATE PASSWORD POLICY
- CREATE PIPE
- CREATE PROCEDURE
- CREATE REPLICATION GROUP
- CREATE RESOURCE MONITOR
- CREATE ROLE
- CREATE ROW ACCESS POLICY
- CREATE SCHEMA
- CREATE SECURITY INTEGRATION
- CREATE SECURITY INTEGRATION (External OAuth)
- CREATE SECURITY INTEGRATION (Snowflake OAuth)
- CREATE SECURITY INTEGRATION (SAML2)
- CREATE SECURITY INTEGRATION (SCIM)
- CREATE SEQUENCE
- CREATE SESSION POLICY
- CREATE SHARE
- CREATE STAGE
- CREATE STORAGE INTEGRATION
- CREATE STREAM
- CREATE TABLE
- CREATE | ALTER TABLE … CONSTRAINT
- CREATE TAG
- CREATE TASK
- CREATE USER
- CREATE VIEW
- CREATE WAREHOUSE
- DELETE
- DESCRIBE <Objekt>
- DESCRIBE DATABASE
- DESCRIBE EXTERNAL TABLE
- DESCRIBE FILE FORMAT
- DESCRIBE FUNCTION
- DESCRIBE INTEGRATION
- DESCRIBE MASKING POLICY
- DESCRIBE MATERIALIZED VIEW
- DESCRIBE NETWORK POLICY
- DESCRIBE PASSWORD POLICY
- DESCRIBE PIPE
- DESCRIBE PROCEDURE
- DESCRIBE RESULT
- DESCRIBE ROW ACCESS POLICY
- DESCRIBE SCHEMA
- DESCRIBE SEARCH OPTIMIZATION
- DESCRIBE SEQUENCE
- DESCRIBE SESSION POLICY
- DESCRIBE SHARE
- DESCRIBE STAGE
- DESCRIBE STREAM
- DESCRIBE TABLE
- DESCRIBE TASK
- DESCRIBE TRANSACTION
- DESCRIBE USER
- DESCRIBE VIEW
- DESCRIBE WAREHOUSE
- DROP <Objekt>
- DROP CONNECTION
- DROP DATABASE
- DROP DATABASE ROLE
- DROP EXTERNAL TABLE
- DROP FAILOVER GROUP
- DROP FILE FORMAT
- DROP FUNCTION
- DROP INTEGRATION
- DROP MANAGED ACCOUNT
- DROP MASKING POLICY
- DROP MATERIALIZED VIEW
- DROP NETWORK POLICY
- DROP PASSWORD POLICY
- DROP PIPE
- DROP PROCEDURE
- DROP REPLICATION GROUP
- DROP RESOURCE MONITOR
- DROP ROLE
- DROP ROW ACCESS POLICY
- DROP SCHEMA
- DROP SEQUENCE
- DROP SESSION POLICY
- DROP SHARE
- DROP STAGE
- DROP STREAM
- DROP TABLE
- DROP TAG
- DROP TASK
- DROP USER
- DROP VIEW
- DROP WAREHOUSE
- EXECUTE IMMEDIATE
- EXECUTE TASK
- EXPLAIN
- GET
- GRANT DATABASE ROLE
- GRANT DATABASE ROLE … TO SHARE
- GRANT OWNERSHIP
- GRANT <Berechtigungen>
- GRANT <Berechtigung> … TO SHARE
- GRANT ROLE
- INSERT
- INSERT (mehrere Tabellen)
- LIST
- MERGE
- PUT
- REMOVE
- REVOKE DATABASE ROLE
- REVOKE DATABASE ROLE … FROM SHARE
- REVOKE <Berechtigungen>
- REVOKE <Berechtigung> … FROM SHARE
- REVOKE ROLE
- ROLLBACK
- SELECT
- SET
- SHOW <Objekte>
- SHOW COLUMNS
- SHOW CONNECTIONS
- SHOW DATABASE ROLES
- SHOW DATABASES
- SHOW DATABASES IN FAILOVER GROUP
- SHOW DATABASES IN REPLICATION GROUP
- SHOW DELEGATED AUTHORIZATIONS
- SHOW EXTERNAL FUNCTIONS
- SHOW EXTERNAL TABLES
- SHOW FAILOVER GROUPS
- SHOW FILE FORMATS
- SHOW FUNCTIONS
- SHOW GLOBAL ACCOUNTS
- SHOW GRANTS
- SHOW INTEGRATIONS
- SHOW LOCKS
- SHOW MANAGED ACCOUNTS
- SHOW MASKING POLICIES
- SHOW MATERIALIZED VIEWS
- SHOW NETWORK POLICIES
- SHOW OBJECTS
- SHOW ORGANIZATION ACCOUNTS
- SHOW PARAMETERS
- SHOW PASSWORD POLICIES
- SHOW PIPES
- SHOW PRIMARY KEYS
- SHOW PROCEDURES
- SHOW REGIONS
- SHOW REPLICATION ACCOUNTS
- SHOW REPLICATION DATABASES
- SHOW REPLICATION GROUPS
- SHOW RESOURCE MONITORS
- SHOW ROLES
- SHOW ROW ACCESS POLICIES
- SHOW SCHEMAS
- SHOW SEQUENCES
- SHOW SESSION POLICIES
- SHOW SHARES
- SHOW SHARES IN FAILOVER GROUP
- SHOW SHARES IN REPLICATION GROUP
- SHOW STAGES
- SHOW STREAMS
- SHOW TABLES
- SHOW TAGS
- SHOW TASKS
- SHOW TRANSACTIONS
- SHOW USER FUNCTIONS
- SHOW USERS
- SHOW VARIABLES
- SHOW VIEWS
- SHOW WAREHOUSES
- TRUNCATE MATERIALIZED VIEW
- TRUNCATE TABLE
- UNDROP <Objekt>
- UNDROP DATABASE
- UNDROP SCHEMA
- UNDROP TABLE
- UNDROP TAG
- UNSET
- UPDATE
- USE <Objekt>
- USE DATABASE
- USE ROLE
- USE SCHEMA
- USE SECONDARY ROLES
- USE WAREHOUSE
- Befehle der DDL (Datendefinitionssprache)
- Befehle der DML (Datenbearbeitungssprache)
- Abfragesyntax
- Abfrageoperatoren
- SQL-Funktionsreferenz
- Snowflake Scripting-Referenz
- API-Referenz
- Anhänge
GRANT <Berechtigung> … TO SHARE¶
Erteilt einer Freigabe Zugriffsrechte auf Datenbanken und andere unterstützte Datenbankobjekte (Schemas, UDFs, Tabellen und Ansichten). Durch Erteilen von Objektberechtigungen werden diese Objekte effektiv der Freigabe hinzugefügt, die dann für Verbraucherkonten freigegeben werden kann.
Weitere Details dazu finden Sie unter Einführung in Secure Data Sharing und Verwenden von Freigaben.
Syntax¶
GRANT objectPrivilege ON
{ DATABASE <name>
| SCHEMA <name>
| FUNCTION <name>
| { TABLE <name> | ALL TABLES IN SCHEMA <schema_name> }
| VIEW <name> }
TO SHARE <share_name>
Wobei:
objectPrivilege ::= -- For DATABASE, SCHEMA, or FUNCTION USAGE -- For TABLE or VIEW SELECT -- For DATABASE REFERENCE_USAGE
Parameter¶
name
Gibt den Bezeichner des Objekts (Datenbank, Schema, UDF, Tabelle oder sichere Ansicht) an, dem die angegebene Berechtigung erteilt wird.
schema_name
Gibt den Bezeichner des Schemas an, in dem allen Tabellen die angegebene Berechtigung erteilt wird.
share_name
Gibt den Bezeichner der Freigabe an, von der aus die angegebene Berechtigung erteilt wird.
Nutzungshinweise¶
Einer Freigabe kann die USAGE-Berechtigung für nur eine einzige Datenbank erteilt werden. Innerhalb dieser Datenbank können der Freigabe jedoch Berechtigungen für mehrere Schemas, UDFs, Tabellen und Ansichten erteilt werden.
Berechtigungen für einzelne Objekte müssen einer Freigabe in separaten GRANT-Anweisungen erteilt werden. Die einzige Ausnahme ist die SELECT-Berechtigung für Tabellen. Mit einer
ALL
-Klausel können Sie einer Freigabe die SELECT-Berechtigung für alle Tabellen in einem bestimmten Schema erteilen.Die SELECT-Berechtigung für Ansichten kann nur sicheren Ansichten erteilt werden. Beim Versuch, einer Freigabe die SELECT-Berechtigung für eine nicht sichere Ansicht zu erteilen, wird ein Fehler zurückgegeben.
Die USAGE-Berechtigung kann nur sicheren UDFs erteilt werden. Beim Versuch, einer Freigabe die USAGE-Berechtigung für eine nicht sichere UDF zu erteilen, wird ein Fehler zurückgegeben.
Derzeit wird die Freigabe einer UDF, die auf ein Objekt in einer anderen Datenbank verweist, nicht unterstützt. Wenn Sie beispielsweise versuchen, einer UDF, die auf eine sichere Ansicht einer anderen Datenbank verweist, die USAGE-Berechtigung zu erteilen, wird ein Fehler zurückgegeben.
Wenn Sie eine sichere Ansicht freigeben, die auf Objekte verweist, die zu mehreren Datenbanken gehören, Verwenden Sie die Berechtigung REFERENCE_USAGE wie folgt:
Die Berechtigung REFERENCE_USAGE muss jeder Datenbank einzeln erteilt werden.
Die Berechtigung REFERENCE_USAGE muss einer Datenbank erteilt werden, bevor SELECT für eine sichere Ansicht einer Freigabe erteilt wird.
Secure Data Sharing: Datenanbieter können neue Objekte nicht automatisch zu einer Freigabe hinzufügen, indem sie zukünftige Berechtigungszuweisungen verwenden. Das heißt, Datenanbieter können einer Freigabe keine Berechtigungen für zukünftige Objekte erteilen, wenn sie GRANT <Berechtigung> … TO SHARE-Anweisungen verwenden.
Beispiele¶
Dies ist ein Beispiel für das Freigeben von Objekten aus einer einzelnen Datenbank:
GRANT USAGE ON DATABASE mydb TO SHARE share1; GRANT USAGE ON SCHEMA mydb.public TO SHARE share1; GRANT USAGE ON FUNCTION mydb.shared_schema.function1 TO SHARE share1; GRANT USAGE ON FUNCTION mydb.shared_schema.function2 TO SHARE share1; GRANT SELECT ON ALL TABLES IN SCHEMA mydb.public TO SHARE share1; GRANT USAGE ON SCHEMA mydb.shared_schema TO SHARE share1; GRANT SELECT ON VIEW mydb.shared_schema.view1 TO SHARE share1; GRANT SELECT ON VIEW mydb.shared_schema.view3 TO SHARE share1;
Dies ist ein Beispiel für die Freigabe einer sicheren Ansicht, die auf Objekte aus einer anderen Datenbank verweist:
CREATE SECURE VIEW view2 AS SELECT * FROM database2.public.sampletable; GRANT USAGE ON DATABASE database1 TO SHARE share1; GRANT USAGE ON SCHEMA database1.schema1 TO SHARE share1; GRANT REFERENCE_USAGE ON DATABASE database2 TO SHARE share1; GRANT SELECT ON VIEW view2 TO SHARE share1;