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 permettre à d’autres utilisateurs de la base de données d’afficher ou de modifier le contenu des données dans une base de données ou une géodatabase d’entreprise, vous devez leur accorder les privilèges correspondants.

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 uniquement des privilèges SELECT, c'est-à-dire que l'utilisateur peut lire et sélectionner, mais ne peut pas modifier le contenu d'un jeu de données. 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.

Les règles suivantes s’appliquent à l’accord et à la révocation de privilèges sur les données d’une base de données ou d’une 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 Python.
  • 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.

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 :

  • 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 classes d’entités d’origine et de destination se trouvent dans le même jeu de données d’entités, elles bénéficient du même ensemble de privilèges, puisque ces derniers sont accordés au niveau du jeu de données 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 associée à la valeur Attribué ou a une cardinalité de type Plusieurs vers plusieurs, les privilèges sont automatiquement propagés à la table intermédiaire lorsque vous attribuez les 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, qui lui permettent de se connecter au jeu de données et de modifier des entités existantes, mais qui ne lui permettent pas d’ajouter de nouvelles entités ou de supprimer des entités existantes.
  • Si le jeu de données est inscrit comme versionné, 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 en tant que groupe.
  • Si le jeu de données est inscrit comme versionné, 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 les jeux de données versionnés.

Faites appel à l'une des méthodes suivantes pour octroyer ou révoquer des privilèges sur les jeux de données qui vous appartiennent :

  • 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

  1. Connectez-vous à la base de données ou à la géodatabase contenant vos données, pour laquelle vous souhaitez accorder ou révoquer des privilèges.
  2. Cliquez avec le bouton droit sur le jeu de données, pointez sur Organiser, puis cliquez sur 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 pour accorder ou révoquer les privilèges voulus. Cliquez ensuite sur OK pour appliquer vos 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 les privilèges dans la base de données permettant d’afficher tous les utilisateurs et rôles de la base de données, vous pouvez choisir les utilisateurs ou rôles de la base de données que vous souhaitez ajouter dans la liste en cochant la case figurant en regard de leurs noms. Sinon, saisissez le nom de l’utilisateur de base de données, le rôle de base de données, la session de 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 des privilèges que vous souhaitez accorder à 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. L’outil Modifier les privilèges n’affiche pas les éventuels privilèges dont l’utilisateur dispose sur les jeux de données. En outre, les privilèges d'insertion, mise à jour et de suppression doivent être accordés globalement, et non pas individuellement.

  1. Connectez-vous à la base de données ou à la géodatabase 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 à votre connexion à une base de données et choisissez les jeux de données dont vous souhaitez modifier les privilèges.
  4. Tapez le nom de l’utilisateur ou du groupe dont vous voulez modifier les privilèges.
  5. Utilisez les listes déroulantes View (Affichage) et Edit (Modifier) pour choisir les privilèges que vous souhaitez accorder à l'utilisateur ou au groupe spécifié.

    Pour accorder des privilèges de modification, des privilèges d'affichage doivent également être accordés.

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

Utiliser un script Python

Pour utiliser un script Python pour octroyer ou révoquer des privilèges sur un jeu de données vous appartenant, vous pouvez utiliser la fonction ChangePrivileges_management.

  1. Créez une connexion à une base de données à 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.