Octroyer et supprimer des privilèges sur le jeu de données dans des bases de données et des géodatabases d’entreprise

Disponible avec une licence Standard ou Advanced.

Pour autoriser d’autres utilisateurs de la base de données à afficher ou modifier le contenu des données d’une base de données relationnelle ou d’une géodatabase d’entreprise, vous devez leur accorder les privilèges correspondants.

Approfondissement :

Pour les géodatabases d’entreprise et les bases de données relationnelles, le propriétaire des données correspond à l’utilisateur spécifié dans la connexion à la base de données qui est utilisée lors de la création du jeu de données à l’aide des outils des clients ArcGIS. Un jeu de données peut être une classe d’entités, une table ou une vue de base de données ou de géodatabase d’entreprise, ainsi que les jeux de classes d’entités d’une géodatabase d’entreprise.

En tant que propriétaire du jeu de données, vous pouvez utiliser la boîte de dialogue Privileges (Privilèges), l’outil de géotraitement Modifier les privilèges, ou la fonction ChangePrivileges_management dans un script Python pour spécifier les privilèges qu’un utilisateur ou un groupe détient sur un jeu de données spécifique.

Vous pouvez accorder les privilèges de sélection de données, ce qui signifie que l’utilisateur peut lire et sélectionner le contenu d’un jeu de données, mais pas le modifier. Vous pouvez également accorder des privilèges de mise à jour, d'insertion et de suppression qui permettent à l'utilisateur de modifier le contenu d'un jeu de données.

Voici les règles qui s’appliquent lorsque vous accordez et révoquez des privilèges sur un jeu de données de base de données ou de géodatabase d’entreprise dans ArcGIS :

  • Seul le propriétaire de la table peut modifier les privilèges sur le jeu de données.
  • Seul le propriétaire de la table peut supprimer le jeu de données ou modifier sa définition de structure. Par conséquent, même si des privilèges d’insertion, de mise à jour et de suppression ont été accordés à un autre utilisateur sur un jeu de données, cet utilisateur ne peut pas modifier la structure.
  • Lorsque vous accordez des privilèges d’insertion, de mise à jour ou de suppression à un utilisateur, vous devez également lui donner le privilège de sélection. Les utilisateurs doivent être en mesure de lire le jeu de données pour pouvoir le mettre à jour.
  • Les rôles db_owner et dbo n’apparaissent pas dans la liste User/Role (Utilisateur/Rôle) de la boîte de dialogue Privileges (Privilèges) pour les bases de données Microsoft SQL Server. Des privilèges sont automatiquement accordés à ces utilisateurs sur toutes les données de la base de données. Les privilèges dépendent du rôle et vous ne pouvez pas les révoquer.
  • Les rôles ou groupes de connexion PostgreSQL qui disposent du statut de super-utilisateur dans la base de données n’apparaissent pas dans la liste User/Role (Utilisateur/Rôle) de la boîte de dialogue Privileges (Privilèges). Ces utilisateurs bénéficient automatiquement des privilèges complets sur toutes les données, et vous ne pouvez pas révoquer ces privilèges.
  • Vous ne pouvez modifier les privilèges d'un utilisateur que sur un seul jeu de données à la fois avec la boîte de dialogue Privilèges. Pour modifier les privilèges sur plusieurs jeux de données à la fois, utilisez plutôt l’outil de géotraitement Modifier les privilèges ou la fonction ArcPy.
  • La révocation des privilèges nécessite un verrouillage exclusif sur le jeu de données. Vous ne pouvez pas révoquer les privilèges si un utilisateur est connecté au jeu de données.
  • Vous ne pouvez pas utiliser ArcGIS pour accorder ou révoquer des privilèges pour des tables de stockages de données cloud.

Les règles suivantes s’appliquent à l’octroi et à la révocation de privilèges sur les jeux de données d’une géodatabase d’entreprise uniquement :

  • Lorsque le jeu de données est une géodatabase d’entreprise, utilisez les outils ArcGIS répertoriés ci-après pour accorder et révoquer des privilèges. Les utilisateurs peuvent ainsi accéder à toutes les tables nécessaires du système de géodatabase associées au jeu de données.
  • Toutes les classes d'entités contenues dans un jeu de données d'entité doivent disposer des mêmes privilèges appliqués.
  • Lorsque des privilèges sont accordés à une classe ou table d'entités qui participe à une classe de relations, les privilèges doivent être accordés à la classe de destination et à la classe d’origine. Si les mises à jour apportées à la classe d’entités d’origine se répercutent sur la classe d’entités de destination, vous devez accorder des privilèges de mise à jour, d’insertion ou de suppression sur les deux classes d’entités.

    Si les classes d’entités d’origine et de destination se trouvent dans le même jeu de classes d’entités, elles ont le même ensemble de privilèges, car ceux-ci sont accordés au niveau du jeu de classes d’entités. Toutefois, lorsque les classes d’origine et de destination ne sont pas dans le même jeu de données d'entité, vous devez vous assurer qu'elles bénéficient toutes deux des privilèges appropriés. Si la classe de relations est attribuée ou présente une cardinalité plusieurs vers plusieurs, les privilèges sont automatiquement propagés à la table intermédiaire (et non à la classe de destination) au moment où vous attribuez des privilèges à la classe d’origine.

  • Si le jeu de données n'est pas enregistré comme versionné, vous pouvez accorder et révoquer individuellement les privilèges de mise à jour, d'insertion et de suppression dans la boîte de dialogue Privileges (Privilèges). Par exemple, vous pouvez accorder à un utilisateur des privilèges de sélection et de mise à jour, ce qui lui permet d’ouvrir le jeu de données et de modifier les entités existantes, mais pas d’ajouter de nouvelles entités ou de supprimer des entités existantes.
  • Si le jeu de données est inscrit pour versionnement traditionnel, les privilèges qui permettent à un utilisateur de modifier un jeu de données (mise à jour, insertion et suppression) doivent être accordés et révoqués de façon groupée.
  • Si le jeu de données est inscrit comme versionné de manière traditionnelle, l’administrateur de géodatabase doit disposer des privilèges complets sur ce jeu de données. Par conséquent, vous ne pouvez pas révoquer les privilèges de l’administrateur de géodatabase sur ces jeux de données.
  • Les jeux de données inscrits pour versionnement de branche peuvent seulement être mis à jour par l’intermédiaire de couches d’entités Web ; l’accès aux données est géré par les paramètres figurant sur la couche d’entités Web. Comme seul le propriétaire des données peut publier les données de branche versionnée, il n’y a aucune raison d’accorder des privilèges eu égard aux données de la géodatabase aux autres utilisateurs.

Pour accorder ou révoquer des privilèges sur des jeux de données qui vous appartiennent, procédez de l’une des façons suivantes :

  • Boîte de dialogue Privileges (Privilèges) : vous pouvez voir les privilèges détenus par un utilisateur ou un groupe sur un jeu de données spécifique dans la boîte de dialogue Privileges (Privilèges). Vous pouvez également accorder des privilèges sur un jeu de données à plusieurs utilisateurs ou groupes à la fois.
  • Outil Modifier les privilèges : vous pouvez accorder des privilèges sur plusieurs jeux de données à un utilisateur ou groupe à l’aide de l’outil de géotraitement Modifier les privilèges.
  • Script Python : vous pouvez exécuter un script Python à partir des machines sur lesquelles ArcGIS Server est installé. Les privilèges peuvent être modifiés sur plusieurs jeux de données.

Utiliser la boîte de dialogue Privilèges

Pour accorder ou révoquer des privilèges à partir de la boîte de dialogue Privileges (Privilèges) de ArcGIS Pro, procédez comme suit :

  1. Connectez-vous à la base de données relationnelle ou à la géodatabase d’entreprise qui contient les données dont vous êtes propriétaire et pour laquelle vous souhaitez accorder ou révoquer des privilèges.
  2. Cliquez avec le bouton droit sur le jeu de données, puis cliquez sur Privileges (Privilèges).
  3. Si l’utilisateur ou le rôle associé aux privilèges que vous souhaitez modifier figure dans la liste, cochez ou décochez les cases correspondant aux privilèges à accorder ou révoquer. Cliquez ensuite sur OK pour appliquer les modifications.
    Remarque :

    Si vous décochez toutes les cases des privilèges, l’utilisateur ou le rôle est supprimé de la liste.

  4. Si l’utilisateur ou le rôle ne figure pas dans la liste, procédez comme suit :
    1. Cliquez sur Add User (Ajouter un utilisateur) pour ouvrir la boîte de dialogue User/Role (Utilisateur/Rôle).
    2. Si vous possédez des privilèges sur la base de données permettant d’afficher tous les utilisateurs et les rôles de la base de données, vous pouvez cocher la case des utilisateurs ou des rôles de la base de données en regard du nom d’utilisateur ou de rôle pour l’ajouter. Vous pouvez également saisir le nom de l’utilisateur de base de données, le rôle de base de données, les données d’accès au système d’exploitation ou le groupe Windows auquel vous souhaitez accorder des privilèges.
    3. Cliquez sur OK pour fermer la boîte de dialogue Utilisateur/Rôle.
    4. Cochez les cases correspondant aux privilèges nécessaires pour chaque nouvel utilisateur ou rôle et cliquez sur OK.

Utiliser l'outil Modifier les privilèges

Vous pouvez utiliser l'outil Modifier les privilèges pour accorder ou révoquer des privilèges sur les jeux de données vous appartenant. Il se trouve dans le jeu d'outils Administration de géodatabase de la boîte à outils Gestion des données.

Il permet également de modifier les privilèges d'un utilisateur ou d'un groupe sur plusieurs jeux de données à la fois. Le même privilège est accordé à tous les jeux de données spécifiés.

L’outil Modifier les privilèges n’affiche pas les privilèges existants dont dispose éventuellement l’utilisateur sur les jeux de données. De même, les privilèges d’insertion, de mise à jour et de suppression doivent être accordées globalement ; ils ne peuvent pas être octroyés individuellement.

  1. Connectez-vous à la géodatabase d’entreprise ou à la base de données relationnelle en tant que propriétaire des jeux de données pour lesquels vous voulez accorder ou révoquer des privilèges.
  2. Ouvrez l'outil Modifier les privilèges.
  3. Accédez à la connexion à la base de données et choisissez les jeux de données.
  4. Saisissez le nom de l’utilisateur ou du groupe pour lequel les privilèges doivent changer.
  5. Utilisez les listes déroulantes View (Affichage) et Edit (Mise à jour) pour choisir les privilèges à accorder à l’utilisateur ou au groupe spécifié.

    Lorsque vous sélectionnez Edit (Mise à jour), le privilège View (Affichage) doit également être accordé.

  6. Cliquez sur OK pour exécuter l'outil.

Utiliser un script Python

Pour utiliser un script Python afin d’octroyer ou révoquer des privilèges sur les jeux de données qui vous appartiennent, utilisez la fonction ChangePrivileges_management.

  1. Créez une connexion à une base de données (fichier .sde) à l’aide de la fonction CreateDatabaseConnection_management.

    Vous devez vous connecter en tant que propriétaire des jeux de données et enregistrer le nom d’utilisateur avec le fichier.

  2. Exécutez la fonction ChangePrivileges_management.