Notebooks privés

Introduction

Dans Snowsight, vous pouvez créer un notebook privé, appartenant à l’utilisateur. Ce notebook privé est stocké dans votre base de données personnelle : un espace de travail dédié dans lequel vous pouvez créer, modifier et gérer vos notebooks privés. Contrairement à la propriété basée sur les rôles, les objets d’une base de données personnelle sont la propriété d’un utilisateur individuel. Le cycle de vie de la base de données personnelle d’un utilisateur est lié à l’utilisateur. Par exemple, si un utilisateur est supprimé dans le compte Snowflake, sa base de données personnelle est également supprimée. Vous pouvez créer des notebooks privés dans une base de données personnelle sans avoir à attendre que quelqu’un vous accorde les privilèges appropriés.

Votre base de données personnelle est nommée d’après votre nom d’utilisateur sous la forme USER$username (par exemple, USER$JOHNDOE). Vous pouvez également y faire référence avec le préfixe USER$. Vous pouvez voir les détails de votre base de données personnelle sur Data » Databases.

Un notebook vous permet d’effectuer les tâches suivantes :

  • Développez en privé du code de manière interactive et expérimentez avec des données et des modèles.

  • Déployez ces projets en dupliquant les notebooks des bases de données personnelles vers des bases de données régulières et non personnelles.

Pour plus d’informations sur les conditions préalables à l’utilisation d’un notebook privé, voir Conditions préalables à l’utilisation des notebooks privés.

Pour plus d’informations sur la création d’un notebook privé, voir Créer un nouveau notebook.

Activer tous les rôles secondaires pour les utilisateurs du notebook privé

Avant de créer un notebook privé, les rôles secondaires doivent être activés. En effet, les notebooks privés appartiennent à l’utilisateur et non à son rôle principal.

Le bundle 2024_07 BCR (activé par défaut) a permis d’activer tous les rôles secondaires, mais si l’administrateur de compte a désactivé le bundle, vous devez soit :

  • Activer le bundle 2024_07 ou 2024_08 BCR.

  • Définissez l’objet DEFAULT_SECONDARY_ROLES sur ('ALL') pour l’utilisateur.

Pour activer tous les rôles secondaires d’un utilisateur par défaut, l’utilisateur ou un administrateur peut utiliser la commande ALTER USER pour définir la propriété de l’objet DEFAULT_SECONDARY_ROLES sur ('ALL') pour l’utilisateur.

Par exemple, les administrateurs peuvent exécuter l’instruction SQL suivante pour activer par défaut tous les rôles secondaires d’un utilisateur :

ALTER USER my_user SET DEFAULT_SECONDARY_ROLES = ('ALL');
Copy

Après qu’un administrateur a exécuté l’instruction SQL ci-dessus, l’utilisateur peut choisir Projets » Notebooks dans l”Snowsight ou exécuter les commandes SQL dans une nouvelle feuille de calcul pour créer un notebook privé.

Un utilisateur qui souhaite exécuter des commandes SQL dans une feuille de calcul existante doit exécuter l’instruction SQL suivante avant de créer un notebook privé :

USE SECONDARY ROLES ALL;
Copy

Limites des notebooks privés

  • Les notebooks privés ne peuvent pas être planifiés.

Restrictions concernant les bases de données personnelles

  • Les utilisateurs ne peuvent créer de notebooks et de schémas personnels qu’à l’intérieur d’une base de données personnelle. Par exemple, les tables ne peuvent pas être créées et chargées.

  • Les utilisateurs ne peuvent pas modifier, cloner ou répliquer leur base de données personnelle.

  • Les utilisateurs ne peuvent pas déplacer les schémas entre les bases de données personnelles et non personnelles.

  • Les administrateurs ne peuvent pas ajouter une base de données personnelle à un groupe de réplication à des fins de réplication.

  • Les utilisateurs ne peuvent pas ajouter une base de données personnelle aux Native Apps (paquet d’applications).

  • Les utilisateurs et les administrateurs ne peuvent pas supprimer et/ou renommer le schéma USER$.PUBLIC.

  • Limites de la collaboration :

    • Les administrateurs ne peuvent pas créer de rôles de base de données.

    • Les utilisateurs et les administrateurs ne peuvent pas accorder à d’autres personnes les privilèges liés à l’objet CREATE <> sur leurs schémas à d’autres.

    • Les utilisateurs ne peuvent pas accorder de privilèges sur leurs objets aux partages ou aux paquets d’application.

    • Les utilisateurs ne peuvent pas accorder le privilège REFERENCE_USAGE sur leur base de données personnelle à des partages ou à des paquets.

    • Les utilisateurs ne peuvent pas ajouter une base de données personnelle à un partage (à des fins de partage entre comptes).

Organiser vos notebooks privés

Vous pouvez créer et utiliser des schémas pour organiser vos notebooks privés. Par défaut, les bases de données personnelles contiennent les schémas standard nommés PUBLIC et INFORMATION_SCHEMA.

Créez et utilisez de nouveaux schémas de la manière habituelle, mais assurez-vous que vous utilisez votre base de données personnelle lorsque vous créez des schémas. Par exemple :

USE DATABASE USER$bobr;
CREATE SCHEMA bobr_schema;
USE SCHEMA bobr_schema;
Copy

Vous pouvez également utiliser la commande ALTER SCHEMA sur les schémas des bases de données personnelles, et vous pouvez utiliser la commande SHOW SCHEMAS pour voir les schémas qui appartiennent aux bases de données personnelles. Par exemple :

ALTER SCHEMA bobr_schema RENAME TO bobr_personal_schema;
SHOW TERSE SCHEMAS;
Copy
+-------------------------------+----------------------+------+---------------+-------------+
| created_on                    | name                 | kind | database_name | schema_name |
|-------------------------------+----------------------+------+---------------+-------------|
| 2024-10-28 19:33:18.437 -0700 | BOBR_PERSONAL_SCHEMA | NULL | USER$BOBR     | NULL        |
| 2024-10-29 14:11:33.267 -0700 | INFORMATION_SCHEMA   | NULL | USER$BOBR     | NULL        |
| 2024-10-28 12:47:21.502 -0700 | PUBLIC               | NULL | USER$BOBR     | NULL        |
+-------------------------------+----------------------+------+---------------+-------------+

Rendre un notebook privé disponible pour usage général

À un moment donné de son développement, vous souhaiterez peut-être recréer votre notebook en dehors de votre base de données personnelle. Pour effectuer cette modification, dupliquez le notebook original à l’aide d’une commande CREATE NOTEBOOK. Lorsque vous faites cela, le notebook devient visible pour les autres utilisateurs.

Par exemple :

CREATE NOTEBOOK bobr_prod_notebook
  FROM 'snow://notebook/USER$BOBR.PUBLIC.bobr_private_notebook/versions/version$1/'
  QUERY_WAREHOUSE = 'PUBLIC_WH'
  MAIN_FILE = 'notebook_app.ipynb'
  COMMENT = 'Duplicated from personal database';
Copy
Notebook BOBR_PROD_NOTEBOOK successfully created.

Vous pouvez également créer un notebook privé à partir d’un notebook créé dans une base de données de production.

Note

Vous ne pouvez pas effectuer cette tâche via l’interface utilisateur Snowsight ; vous devez utiliser une commande SQL explicite (dans une cellule SQL d’un notebook ou dans une feuille de calcul, par exemple).

Voir des informations sur les notebooks privés et les bases de données personnelles

Les utilisateurs individuels peuvent utiliser l”Snowsight pour voir les informations sur les notebooks. Allez à Projects » Notebooks. Le propriétaire du notebook est annoncé comme l’utilisateur.

Pour obtenir des informations sur les bases de données, y compris les bases de données personnelles, accédez à Data » Databases. Vous pouvez facilement voir quelles sont les bases de données personnelles car elles portent le préfixe USER$.

Vous pouvez également utiliser les commandes SHOW et DESCRIBE pour voir les informations sur les notebooks privés, les bases de données personnelles et les schémas contenus dans ces bases de données personnelles :

Note

Actuellement, les administrateurs ne peuvent pas voir les objets du notebook privé qui appartiennent à d’autres utilisateurs.

Par exemple, décrire un notebook privé :

DESCRIBE NOTEBOOK USER$.PUBLIC.bobr_private_notebook;
Copy

Par exemple, afficher des informations sur un ou plusieurs notebooks privés :

SHOW NOTEBOOKS;
Copy
SHOW NOTEBOOKS LIKE 'bobr_private_notebook';
Copy

Par exemple, afficher la base de données personnelle de l’utilisateur actuel :

SHOW DATABASES LIKE 'USER$BOBR';
Copy

Pour les bases de données personnelles, la valeur de la colonne kind est PERSONAL DATABASE.