Ajouter des identifiants de connexion et des utilisateurs à SQL Server

Dans Microsoft SQL Server, les administrateurs de base de données ajoutent des identifiants de connexion à l’instance SQL Server et une correspondance est établie entre ces identifiants de connexion et les utilisateurs de bases de données individuelles de l’instance SQL Server. Les utilisateurs de bases de données qui doivent créer des tables et des classes d’entités doivent bénéficier des privilèges nécessaires pour créer ces objets dans la base de données et posséder une structure dans laquelle ils peuvent les créer. Lorsque vous utilisez ArcGIS, cette structure doit avoir le même nom que l’utilisateur de la base de données.

Pour effectuer les opérations suivantes, vous pouvez utiliser l’outil de géotraitement Créer un utilisateur de base de données ou un script Python qui appelle la fonction ArcPy management.CreateDatabaseUser.

  • Créer ou ajouter un identifiant de connexion à l’instance SQL Server
  • Créer un utilisateur associé à l’identifiant de connexion spécifié
  • Créer une structure correspondante pour l’utilisateur dans la base de données spécifiée
  • Accorder des privilèges à l’utilisateur pour créer des tables, des classes d’entités et des vues dans la base de données spécifiée

Ajouter un utilisateur qui peut créer des données

Vous pouvez exécuter l’outil Créer un utilisateur de base de données à partir d’ArcGIS AllSource ou appeler la fonction ArcPy management.CreateDatabaseUser dans un script Python pour créer un utilisateur de base de données pouvant créer des tables, des classes d’entités et des vues.

Vous devez être connecté à la base de données via un identifiant de connexion qui détient des privilèges sysadmin sur l’instance SQL Server pour exécuter l’outil Créer un utilisateur de base de données ou la fonction management.CreateDatabaseUser.

Pour créer un utilisateur de base de données pour un identifiant de connexion Microsoft Windows, ce dernier doit exister afin que vous puissiez exécuter l’outil ou la fonction.

Utiliser l’outil Créer un utilisateur de base de données

Pour créer un utilisateur de base de données dans SQL Server à l’aide de l’outil Créer un utilisateur de base de données, procédez comme suit :

  1. Démarrez ArcGIS AllSource.
  2. Connectez-vous à la base de données ou à la géodatabase avec un identifiant de connexion doté de privilèges sysadmin dans l’instance SQL Server.
  3. Ouvrez l’outil Créer un utilisateur de base de données.

    Il se trouve dans le jeu d’outils Administration de géodatabase de la boîte à outils Gestion des données.

  4. Identifiez la connexion à la base de données pour la Connexion à la base de données en entrée.
  5. Créez un identifiant de connexion authentifié par SQL Server ou utilisez un identifiant de connexion authentifié par Windows existant.
    • Laissez l’option Create Operating System Authenticated User (Créer un utilisateur authentifié par le système d’exploitation) désélectionnée pour créer un identifiant de connexion authentifié par SQL Server. Par défaut, les instances SQL Server utilisent uniquement l’authentification Windows. Si votre instance n’est pas configurée pour utiliser SQL Server et l’authentification Windows, vous ne pouvez pas choisir d’identifiant de connexion authentifié par la base de données.
    • Sélectionnez l’option Create Operating System Authenticated User (Créer un utilisateur authentifié par le système d’exploitation) pour utiliser un identifiant de connexion authentifié par Windows.
  6. Attribuez un nom à l’utilisateur de la base de données que l’outil va créer.

    Si vous choisissez de créer un identifiant de connexion authentifié par SQL Server, le nom qui apparaît ici sera également attribué à l’identifiant de connexion.

  7. Saisissez un mot de passe pour l’utilisateur de la base de données.
  8. Si vous disposez déjà d’un rôle de base de données auquel vous souhaitez ajouter cet utilisateur, indiquez le rôle.
  9. Cliquez sur Run (Exécuter).

Exécuter un script Python

Pour générer un script de création d’utilisateur, procédez comme suit :

  1. Créez un fichier texte sur l’ordinateur d’un client ArcGIS, puis copiez-y un des blocs de code suivants.

    Modifiez le code avec les informations spécifiques à votre site.

    Les exemples supposent que vous disposez d’un fichier de connexion à une base de données existant qui vous permet de vous connecter en tant qu’utilisateur doté de privilèges sysadmin dans l’instance SQL Server. Si vous ne disposez pas d’un fichier de connexion, créez-en un avant d’exécuter le script.

    # Name: createdatabaseuser_exampleW.py
    # Description: Uses existing database connection file
    # on a Windows computer to create a database user in SQL Server.
    
    # Import arcpy module
    import arcpy
     
    # Provide a database connection file for the system administrator user.
    connection = "C:\\ArcGIS\connection_files\<Connection file>.sde"
    
    # Process: Create database user that can create data for an existing operating system login.
    arcpy.CreateDatabaseUser_management(connection, "OPERATING_SYSTEM_USER", "NETWORKNAME\\username")
    # Name: createdatabaseuser_exampleL.py
    # Description: Uses existing database connection file
    # on a Linux computer to create a database user in SQL Server.
    
    # Import arcpy module
    import arcpy
     
    # Provide a database connection file for the system administrator user.
    connection = "<user>/connections/<Connection_file>.sde"
    
    # Process: Create a new database login and user that can create data.
    arcpy.CreateDatabaseUser_management(connection, "DATABASE_USER", "dbuser", "t3mpor@rypL@ceholder1")

  2. Enregistrez le fichier avec l’extension .py.
  3. Exécutez le script à partir d’un ordinateur sur lequel ArcGIS AllSource (Standard ou Advanced) ou ArcGIS Server est installé.

    Pour plus d’informations sur l’exécution de Python à partir d’une machine ArcGIS Server, reportez-vous à la rubrique ArcGIS Server et ArcPy.

Votre base de données contient désormais un utilisateur qui peut créer des tables et des classes d’entités.

Lorsque les tables et les classes d’entités ont été créées, le propriétaire des données peut accorder aux autres utilisateurs des privilèges sur les jeux de données. Pour obtenir des instructions, reportez-vous à la rubrique Octroyer et supprimer des privilèges sur le jeu de données dans des bases de données et des géodatabases d’entreprise.

Créer des identifiants de connexion et des utilisateurs avec des outils SQL Server

Pour créer un utilisateur possédant des privilèges différents de ceux qui ont été octroyés par l’outilCréer un utilisateur de base de données ou auquel aucun privilège n’a été accordé directement, utilisez des outils SQL Server. Voici certains points à prendre en compte lorsque vous créez vos propres identifiants de connexion et utilisateurs à utiliser avec ArcGIS :

  • Tous les utilisateurs d’une base de données qui vont créer des données doivent posséder une structure dans la base de données. Le nom de cette structure et celui de l’utilisateur doivent être identiques.
  • Vous pouvez accorder un accès à un groupe Windows plutôt qu’à des identifiants SQL Server individuels pour simplifier la création et la gestion des identifiants de connexion Windows. Tous les membres du groupe Windows peuvent se connecter à SQL Server. Les privilèges accordés à un groupe sur le serveur, la base de données et les jeux de données sont automatiquement appliqués à chaque membre du groupe. Toutefois, vous ne pouvez pas créer une structure unique pour stocker les données créées par les membres de groupe. Chaque membre du groupe qui crée des données dans la géodatabase doit disposer de sa propre structure pour stocker les données. SQL Server crée un utilisateur et une structure dans la base de données lorsqu’un membre du groupe génère des données pour la première fois. Cet événement est automatique ; ne créez aucune structure et aucun utilisateur manuellement.

Pour savoir comment utiliser les outils SQL Server pour créer des identifiants de connexion, des utilisateurs et des structures, consultez la documentation Microsoft SQL Server.