Aller au contenu principal

Créer des utilisateurs SQL Server

Pour un accès sécurisé aux bases de données SEI, il est fortement recommandé de créer des comptes utilisateur SQL Server dédiés plutôt que d'utiliser les identifiants par défaut sa ou d'autres comptes administratifs. Cette approche renforce la sécurité du système et permet un contrôle plus granulaire sur l'accès à la base de données.

SEI fournit des scripts SQL pour créer des utilisateurs avec des permissions administratives ou limitées. Ces scripts doivent être exécutés par un utilisateur disposant de droits d'administrateur sur le SQL Server. Après l'installation de SEI, exécutez le script approprié pour créer des utilisateurs dédiés aux services de SEI. L'utilisation de comptes dédiés facilite la gestion des mots de passe et s'aligne sur les pratiques de sécurité recommandées, car ces comptes ne sont pas soumis aux mêmes exigences en matière de mot de passe ou d'authentification que le compte sa ou les utilisateurs basés sur Windows.

Les utilisateurs SQL Server dédiés ne doivent avoir que les permissions nécessaires à leur utilisation prévue. Cela s'applique aux connexions pour Central Point, DataSync et à tous les utilisateurs configurés via la page Gérer les environnements et les sources de données.

remarque

Ces scripts doivent être exécutés avec un utilisateur disposant de permissions administratives sur le SQL Server.

Créer des utilisateurs administratifs

Des utilisateurs administratifs sont nécessaires pour gérer tous les composants et bases de données du système SEI avec un accès complet. SEI fournit des scripts SQL pour automatiser la création de ces utilisateurs, garantissant ainsi des permissions appropriées.

Le script crée des utilisateurs SQL Server dédiés pour chaque base de données principale :

  • Base de données de configuration SEI : Génère l'utilisateur SEI.
  • Base de données de licence BI : Génère l'utilisateur BILicense.
  • Entrepôt de données SEI (SEICube) : Génère l'utilisateur SEICube avec les permissions appropriées.
  • Base de données ERP : Fournit l'utilisateur administratif avec un accès aux schémas pertinents.

En général, le script est conçu pour des installations où toutes les bases de données sont hébergées sur un seul serveur. Si votre environnement s'étend sur plusieurs serveurs — par exemple, avec des bases de données d'application sur l'un et des données d'entrepôt sur un autre — exécutez uniquement les sections appropriées du script sur chaque serveur concerné. Par exemple, exécutez les commandes de la base de données de configuration et de la base de données de licence sur le serveur d'application, et utilisez les portions de la base de données d'entrepôt et de la base de données ERP sur le serveur de base de données.

Exécutez le script fourni Administrative_user.sql en tant qu'utilisateur avec des droits administratifs sur SQL Server et suivez les instructions dans le script pour fournir des noms d'utilisateur, des mots de passe et des détails de schéma adaptés à votre environnement.

remarque

Le script d'exemple fourni est basé sur un environnement Sage X3. Assurez-vous d'ajuster les noms de schéma et les paramètres de dossier pour correspondre à votre propre configuration de base de données ERP.

/*
Script pour créer des utilisateurs SQL Server avec des permissions administratives.
Exécutez ce script en tant qu'utilisateur ayant des privilèges administratifs sur le SQL Server.
Instructions :
- Remplacez "userWithAdministrativePermissions" par le nom d'utilisateur SQL souhaité.
- Spécifiez un mot de passe sécurisé pour la connexion.
- Remplacez "NECTARI_CUSTOM_SCHEMA" par le nom réel du schéma Nectari/SEI.
- Remplacez "X3FOLDER" par le nom correct du dossier ERP utilisé par Nectari/SEI.
- Ajustez les noms de base de données et de schéma pour votre environnement si nécessaire.
Remarque :
- Vous pouvez restreindre davantage les GRANT et l'appartenance aux rôles si une sécurité plus stricte est requise.
- Pour les environnements avec des composants distribués, exécutez uniquement les parties pertinentes pour les bases de données locales.
*/

CREATE LOGIN userWithAdministrativePermissions WITH PASSWORD = '' -- Crée une connexion au niveau du serveur

-- Entrepôt de données Nectari
use [NectariCube]
CREATE USER userWithAdministrativePermissions FOR LOGIN userWithAdministrativePermissions
ALTER ROLE db_ddladmin add member userWithAdministrativePermissions DDL/admin rights -- Droits DDL/admin
ALTER ROLE db_datareader add member userWithAdministrativePermissions -- Permissions SELECT sur toutes les tables
ALTER ROLE db_datawriter add member userWithAdministrativePermissions -- INSERT, UPDATE, DELETE sur toutes les tables
GRANT EXEC to userWithAdministrativePermissions -- Exécuter les procédures stockées

-- Base de données ERP (ex : Sage X3)
use [x3]
CREATE USER userWithAdministrativePermissions FOR LOGIN userWithAdministrativePermissions
GRANT ALTER on SCHEMA :: NECTARI_CUSTOM_SCHEMA to userWithAdministrativePermissions -- Droits ALTER complets sur le schéma personnalisé
GRANT SELECT,INSERT,UPDATE,DELETE,EXEC on SCHEMA :: NECTARI_CUSTOM_SCHEMA to userWithAdministrativePermissions -- DML complet et EXEC sur le schéma personnalisé
GRANT SELECT on SCHEMA :: X3FOLDER to userWithAdministrativePermissions -- Accès en lecture seule à toutes les tables du dossier ERP
GRANT CREATE TABLE to userWithAdministrativePermissions -- Autorise la création de tables
GRANT ALTER on SCHEMA :: X3FOLDER to userWithAdministrativePermissions -- Autorise la création de déclencheurs

-- Base de données de configuration
use [NECTARI]
CREATE USER userWithAdministrativePermissions FOR LOGIN userWithAdministrativePermissions
ALTER ROLE db_ddladmin add member userWithAdministrativePermissions -- Droits DDL/admin
ALTER ROLE db_datareader add member userWithAdministrativePermissions -- Permissions SELECT
ALTER ROLE db_datawriter add member userWithAdministrativePermissions -- INSERT, UPDATE, DELETE

-- Base de données de licence
use [BILicense]
CREATE USER userWithAdministrativePermissions FOR LOGIN userWithAdministrativePermissions
ALTER ROLE db_ddladmin add member userWithAdministrativePermissions -- Droits DDL/admin
ALTER ROLE db_datareader add member userWithAdministrativePermissions -- Permissions SELECT
ALTER ROLE db_datawriter add member userWithAdministrativePermissions -- INSERT, UPDATE, DELETE

Créer des utilisateurs avec des permissions minimales

Pour les scénarios où un accès complet à la base de données n'est pas nécessaire, SEI prend en charge les utilisateurs SQL Server avec des privilèges restreints. Les utilisateurs avec des permissions minimales ont un accès en lecture (SELECT) à toutes les tables des bases de données requises, et peuvent être restreints davantage si nécessaire. Ce paramètre est utile pour les utilisateurs de rapports ou les intégrations qui nécessitent uniquement un accès limité aux données.

Le script fourni accorde à ces utilisateurs l'accès à l'entrepôt de données SEI (NectariCube) et aux schémas de la base de données ERP (tels que Sage X3). Le script peut être ajusté pour exclure l'accès à des tables spécifiques en appliquant une ou plusieurs instructions DENY.

Exécutez le script MinimumPermissions_user.sql avec un compte ayant des permissions administratives sur le SQL Server. Suivez les instructions dans le script pour fournir les noms d'utilisateur, les mots de passe et les détails de schéma corrects pour votre environnement.

remarque

Le script d'exemple fourni est basé sur un environnement Sage X3. Assurez-vous d'ajuster les noms de schéma et les paramètres de dossier pour correspondre à votre propre configuration de base de données ERP.

/*
Script pour créer des utilisateurs restreints avec des permissions minimales.
Exécutez ce script en tant qu'utilisateur ayant des privilèges administratifs sur le SQL Server.
Instructions :
- Remplacez "userWithMinimumPermissions" par le nom d'utilisateur SQL souhaité.
- Spécifiez un mot de passe pour la connexion.
- Remplacez "NECTARI_CUSTOM_SCHEMA" par le nom de votre schéma Nectari/SEI.
- Remplacez "X3FOLDER" par le nom de votre dossier ERP utilisé par Nectari/SEI.
- Décommentez les instructions facultatives si nécessaire.
- Ajoutez des instructions DENY à la fin pour bloquer l'accès à des tables spécifiques.
*/

CREATE LOGIN userWithMinimumPermissions WITH PASSWORD = '' -- Crée une connexion au niveau du serveur

-- Entrepôt de données
use [NectariCube]
CREATE USER userWithMinimumPermissions FOR LOGIN userWithMinimumPermissions
ALTER ROLE db_datareader add member userWithMinimumPermissions -- Permission SELECT
ALTER ROLE db_datawriter add member userWithMinimumPermissions -- INSERT/UPDATE/DELETE
GRANT EXEC to userWithMinimumPermissions -- Exécuter les procédures stockées
-- ALTER ROLE db_ddladmin ADD MEMBER userWithMinimumPermissions; -- Optionnel : Ajouter des droits DDL si nécessaire pour la création de tables via des procédures stockées

-- Base de données ERP (ex : Sage X3)
use [x3]
CREATE USER userWithMinimumPermissions FOR LOGIN userWithMinimumPermissions
GRANT SELECT,INSERT,UPDATE,DELETE,EXEC on SCHEMA :: NECTARI_CUSTOM_SCHEMA to userWithMinimumPermissions -- DML complet sur le schéma personnalisé
GRANT SELECT on SCHEMA :: X3FOLDER to userWithMinimumPermissions -- Accès en lecture seule à toutes les tables dans le dossier ERP
-- GRANT ALTER ON SCHEMA::NECTARI_CUSTOM_SCHEMA TO userWithMinimumPermissions; -- Optionnel : ALTER complet sur le schéma personnalisé (rarement nécessaire)

-- Ajoutez des instructions DENY ci-dessous pour bloquer l'accès à des tables sensibles :
DENY SELECT on X3FOLDER.TABLENAME to userWithMinimumPermissions -- Exemple : bloque l'accès SELECT sur une table spécifique

Ajouter des utilisateurs à SEI

Après avoir créé les utilisateurs, vous devez les ajouter dans SEI.

Créer l'environnement de production

  1. Connectez-vous à SEI.
  2. Dans le panneau de navigation, sélectionnez l'icône d'engrenage pour ouvrir Administration.
  3. Sélectionnez Env. & Sources de données dans le panneau de gauche.
  4. ...

Créer l'environnement d'administration

  1. ...

Configurer les utilisateurs de la base de données de configuration SEI et de la base de données de licence BI

  1. ...

Configuration d'accès supplémentaire

Accorder l'accès à un nouveau schéma de base de données

Lorsqu'un nouveau schéma de base de données est ajouté, les utilisateurs avec des permissions minimales auront besoin d'un accès explicite à celui-ci. Pour accorder cet accès, exécutez la commande GRANT SELECT on SCHEMA dans le contexte de la base de données ERP pour chaque nouveau schéma. Par exemple, pour donner à l'utilisateur produser1 un accès en lecture à un nouveau schéma appelé TEST :

GRANT SELECT on SCHEMA :: TEST to produser1

Refuser l'accès à un schéma ou une table de base de données

Pour restreindre l'accès et s'assurer qu'un utilisateur avec des permissions minimales ne peut pas lire certaines tables, utilisez la commande DENY SELECT dans le script de la base de données ERP. Par exemple, les instructions suivantes refusent à produser1 l'accès à trois tables spécifiques :

DENY SELECT on SEED.GACCENTRYD to produser1
DENY SELECT on SEED.GACACCOUNT to produser1
DENY SELECT on SEED.GACCDUDATE to produser1

Accorder l'accès ALTER et les droits d'édition

Accorder des privilèges supplémentaires permet aux utilisateurs de modifier des objets spécifiques de SEI si nécessaire. Pour permettre à un utilisateur de modifier des objets de schéma SEI, utilisez la commande GRANT ALTER on SCHEMA. Par exemple, pour permettre à l'utilisateur administratif adminuser1 de modifier des objets de schéma personnalisés :

GRANT ALTER on SCHEMA :: NECTARI_CUSTOM_SCHEMA to adminuser1

Pour permettre à un utilisateur avec des permissions minimales d'insérer, de mettre à jour et de supprimer des enregistrements dans l'entrepôt de données (Cube), utilisez la commande ALTER ROLE à partir du script de l'entrepôt de données SEI. Par exemple, pour fournir ces droits à produser1 :

ALTER ROLE db_datawriter add member produser1