Privilèges pour les géodatabases dans SQL Server

Les privilèges déterminent les opérations qu'une personne est autorisée à réaliser avec les données et la base de données. Les privilèges doivent être attribués selon le type de travail que la personne effectue au sein de l'organisation. Cette personne a-t-elle un rôle dans l'administration de la géodatabase ? Doit-elle modifier ou créer des données ? Ou cette personne a-t-elle seulement besoin d'effectuer des requêtes sur les données ?

Les privilèges utilisateur sont définis à différents niveaux. Cette rubrique présente les privilèges de bases de données et de jeux de données requis pour les types courants d'utilisateurs : visualiseurs de données, éditeurs de données, créateurs de données et administrateur de géodatabase.

Vous pouvez utiliser des outils Microsoft SQL ServerMicrosoft SQL Server ou des instructions Transact SQL pour gérer les privilèges de bases de données accordés aux utilisateurs.

Les privilèges sur les jeux de données dans des géodatabases doivent être accordés ou révoqués à l’aide de clients ArcGIS. Le propriétaire du jeu de données doit se charger de cette opération.

Remarque :

Sur les bases de données, le privilège CONNECT est accordé par défaut au rôle de base de données public. Si vous révoquez ce privilège du rôle public, vous devez accorder explicitement le privilège CONNECT sur les bases de données à des rôles et/ou des identifiants de connexion spécifiques.

Les privilèges présentés dans cette page s’appliquent à SQL Server et aux services de base de données SQL Server pris en charge par ArcGIS.

Privilèges minimaux

Type d’utilisateurPrivilèges de base de donnéesPrivilèges de jeu de donnéesRemarques

Visualiseur de données

SELECT

Si vous êtes autorisé à lire toutes les tables de la base de données, vous pouvez attribuer le rôle de la base de données db_datareader à des utilisateurs. Dans le cas contraire, accordez le droit SELECT à des tables et vues spécifiques.

Editeur de données

  • SELECT, INSERT, UPDATE, et DELETE sur les jeux de données d'autres utilisateurs
  • EXECUTE sur les procédures stockées associées aux données à modifier

Lorsque vous utilisez ArcGIS pour accorder les privilèges SELECT, INSERT, UPDATE et DELETE sur une table ou une classe d’entités inscrite pour le versionnement traditionnel, ces privilèges sont automatiquement accordés sur la vue versionnée associée. Pour effectuer une mise à jour avec une vue versionnée et SQL, l’utilisateur doit détenir ces privilèges.

Créateur de données

  • CREATE TABLE
  • CREATE PROCEDURE
  • CREATE VIEW

Les utilisateurs qui créent les données doivent posséder une structure par défaut du même nom que celui de l'utilisateur de base de données. Par exemple, le nom de structure par défaut doit être simon pour le nom d'utilisateur simon. Sinon, l'utilisateur ne peut pas créer d'objet tels que des classes d'entités.

Administrateur de géodatabases

Si l'administrateur de géodatabase est un utilisateur nommé sde et si cet utilisateur n'est pas destiné à posséder les données de la géodatabase en dehors des objets système, l'utilisateur sde doit seulement être en mesure de se connecter à la géodatabase une fois celle-ci créée.

Opérations SELECT, INSERT, UPDATE et DELETE sur des jeux de données versionnés

Des privilèges supplémentaires sont requis pour autoriser l’utilisateur sde à supprimer ou afficher toutes les connexions dans SQL Server, Amazon Relational Database Service (RDS) for SQL Server et Google Cloud SQL for SQL Server.

Aucun privilège supplémentaire n’est requis pour autoriser l’utilisateur sde à supprimer les connexions d’une instance Microsoft Azure SQL Managed Instance.

L’utilisateur sde ne peut pas supprimer les connexions dans Azure SQL Database.

Privilèges pour créer ou mettre à niveau une géodatabase

Le tableau suivant indique les privilèges devant être attribués à certains utilisateurs pour créer ou mettre à niveau des géodatabases dans les services de base de données SQL Server et SQL Server :

Type de géodatabaseUtilisateur et privilèges pour créer une géodatabaseUtilisateur et privilèges pour mettre à niveau une géodatabase

Géodatabase de structure sde

L'utilisateur sde a besoin des privilèges suivants :

  • CREATE FUNCTION
  • CREATE PROCEDURE
  • CREATE TABLE
  • CREATE VIEW

Pour les géodatabases dans Microsoft Azure SQL Database, le privilège VIEW DATABASE STATE est également requis.

L'utilisateur sde doit être ajouté au rôle db_owner dans la base de données à mettre à niveau.

La mise à niveau peut également être exécutée dans SQL Server par un utilisateur (autre que sde) qui appartient au rôle de base de données db_owner ou au rôle de serveur fixe sysadmin. Cela ne s’applique pas aux services de base de données.

Structure dbo

L'utilisateur dbo dispose déjà des privilèges requis pour créer une géodatabase dans une base de données.

L'utilisateur dbo dispose déjà des privilèges requis pour mettre à niveau une géodatabase.

La mise à niveau peut également être exécutée par un utilisateur associé au rôle de base de données db_owner.

Privilèges supplémentaires

Des privilèges supplémentaires sont requis pour les fonctionnalités suivantes dans la géodatabase :

  • L’administrateur de géodatabase (utilisateur sde) dans une géodatabase de structure sde dans SQL Server doit être ajouté au rôle de serveur fixe processadmin et obtenir des privilèges VIEW DEFINITION sur la base de données pour supprimer les connexions à une géodatabase. L'outil de géotraitement Créer la géodatabase d'entreprise octroie ce rôle et ces privilèges à l'utilisateur sde. Vous pouvez révoquer ce privilège et supprimer l’utilisateur du rôle processadmin une fois la géodatabase créée mais, dans ce cas, l’utilisateur sde ne pourra pas déconnecter les utilisateurs de la géodatabase.
  • L’utilisateur sde dans Google Cloud SQL for SQL Server et Amazon RDS for SQL Server doit être ajouté au rôle de serveur fixe processadmin pour supprimer les connexions à une géodatabase.
  • Les utilisateurs qui possèderont une colonne XML dans SQL Server doivent disposer des privilèges REFERENCES sur le catalogue de texte intégral pour indexer le contenu de cette colonne.