❄️Snowflake

Paso 1: cree un nuevo usuario/rol para Arcwise

Recomendamos crear un usuario y una función de Snowflake separados para el acceso a Arcwise para tener una mejor visibilidad y una gestión de acceso granular. (Es posible saltar al paso 2 y proporcionar en su lugar un conjunto de credenciales existente).

(Opcional) Permitir la conexión desde la dirección IP de Arcwise

Si necesita agregar una dirección IP fija a su lista de permitidos o política de red, consulte nuestraDirección IP Fija de Arcwise página.

Crear un nuevo usuario/rol

Aquí proporcionamos un script para ayudar con la creación de roles y usuarios. Puede pegar esto directamente en Snowsight si tiene privilegios SYSADMIN o ACCOUNTADMIN.

De forma predeterminada, esto permitirá que la función Arcwise acceda a todos los esquemas en $database_name, pero esto se puede restringir si se prefiere (consulte GRANT USAGE ON SCHEMA resaltado a continuación). ¡Asegúrese de que cada consulta se ejecute correctamente!

-- (Optional) Edit these if you prefer something else.
SET role_name = 'ARCWISE_ROLE';
SET user_name = 'ARCWISE_USER';
-- (Optional) You can also use an existing warehouse if desired.
SET warehouse_name = 'ARCWISE_WAREHOUSE';

-- Define a password for the Arcwise user (ideally randomly generated). Remember it for later
SET user_password = '<your-password-here>';

-- Database you want to allow Arcwise to access and snapshot schema that
-- will be created in that database for data snapshot management
SET database_name = '<your-database-here>';
SET snapshot_schema_name = '_ARCWISE_SNAPSHOTS';

-- Database setup
CREATE DATABASE IF NOT EXISTS IDENTIFIER($database_name) COMMENT = 'Arcwise database';

-- Warehouse setup
CREATE WAREHOUSE IF NOT EXISTS IDENTIFIER($warehouse_name)
	warehouse_size = small
	warehouse_type = standard
	auto_suspend = 15
	auto_resume = true
	initially_suspended = true;

-- Role setup
CREATE ROLE IF NOT EXISTS IDENTIFIER($role_name) COMMENT = 'Arcwise default role';

-- User setup
CREATE USER IF NOT EXISTS IDENTIFIER($user_name)
	password = $user_password
	first_name = 'Arcwise'
	last_name = 'User'
	default_warehouse = $warehouse_name
	default_role = $role_name;

-- Assign user -> role
GRANT ROLE IDENTIFIER($role_name) TO USER IDENTIFIER($user_name);

-- Allow role -> warehouse & database
GRANT USAGE ON WAREHOUSE IDENTIFIER($warehouse_name) TO ROLE IDENTIFIER($role_name);
GRANT USAGE ON DATABASE IDENTIFIER($database_name) TO ROLE IDENTIFIER($role_name);

-- Allow role to access all schemas (and tables/views within the schema)
GRANT USAGE ON ALL SCHEMAS IN DATABASE IDENTIFIER($database_name) TO ROLE IDENTIFIER($role_name);
GRANT USAGE ON FUTURE SCHEMAS IN DATABASE IDENTIFIER($database_name) TO ROLE IDENTIFIER($role_name);
-- (Optional) To restrict access to certain schemas: comment out the two lines above and edit below
-- GRANT USAGE ON SCHEMA <your-database>.<your-schema> TO ROLE IDENTIFIER($role_name);

GRANT SELECT ON ALL TABLES IN DATABASE IDENTIFIER($database_name) TO ROLE IDENTIFIER($role_name);
GRANT SELECT ON FUTURE TABLES IN DATABASE IDENTIFIER($database_name) TO ROLE IDENTIFIER($role_name);

GRANT SELECT ON ALL VIEWS IN DATABASE IDENTIFIER($database_name) TO ROLE IDENTIFIER($role_name);
GRANT SELECT ON FUTURE VIEWS IN DATABASE IDENTIFIER($database_name) TO ROLE IDENTIFIER($role_name);

-- Create snapshot schema and grant role ownership over that schema
SET arcwise_snapshots_schema = $database_name || '.' || $snapshot_schema_name;
CREATE SCHEMA IF NOT EXISTS IDENTIFIER($arcwise_snapshots_schema) COMMENT = 'Arcwise-operated schema for managing data snapshots';
GRANT OWNERSHIP ON SCHEMA IDENTIFIER($arcwise_snapshots_schema) TO ROLE IDENTIFIER($role_name) REVOKE CURRENT GRANTS;

-- Allow Arcwise role to analyze query history & table usage activity
GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO ROLE IDENTIFIER($role_name);

By default the above commands will not give the SYSADMIN role access to data managed by Arcwise. To have the Arcwise role inherit from SYSADMIN and therefore grant that role full access run the following command:

GRANT ROLE IDENTIFIER($role_name) TO ROLE SYSADMIN;

Paso 2: agregue las credenciales de Snowflake en Arcwise

  1. Vaya a la pestaña "Conexiones" en el panel de administración de Arcwise (https://admin.arcwise.app/#/warehouse_connections)

  2. Haga clic en el botón "Crear" para agregar la primera conexión.

  3. Complete las credenciales según las variables que completó anteriormente. Se pueden encontrar instrucciones adicionales para cada sección a continuación.

Nombre

Un nombre fácil de usar que describe el propósito de la conexión. Se mostrará a los usuarios finales en Arcwise.

Cuenta

Este es el identificador de su cuenta Snowflake. Debe estar en el formato:

account_locator.cloud_region_id.cloud

EG: uc1234.us-west-1.aws

En Snowsight, puede pasar el cursor sobre el menú de la cuenta en la parte inferior izquierda y hacer clic en Copiar URL de la cuenta; luego elimine el https:// inicial y el .snowflakecomputing.com final

Depósito

Utilice el valor $warehouse_name de la consulta SQL (por ejemplo, ARCWISE_WAREHOUSE)

Base de Datos

Utilice el valor $database_name de la consulta SQL.

Esquema de instantánea

Utilice el valor $snapshot_schema_name de la consulta SQL.

Usuario Contraseña

$user_name y $user_password de la consulta SQL.

Todas las credenciales se almacenan de forma segura mediante cifrado de nivel bancario (256 bits). Una vez que presione Guardar y se haya agregado la conexión, puede cambiar a la pestaña "Tablas" para ver todas las tablas que estarán expuestas en Arcwise.

Last updated