Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Expérimentateur :)
    Inscrit en
    novembre 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expérimentateur :)
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : novembre 2016
    Messages : 9
    Points : 6
    Points
    6

    Par défaut Sécurisation de mes bases

    Bonjour à tous,

    Je viens vous demander conseil !!

    voila le topo : J'ai fait l'installation d'un SQL SERVER STANDARD 2016 sur WINDOWS SERVER STANDARD 2016. Jusque là tout est bon ...

    J'ai donc une seul instance mais plusieurs bases de données appartenant à plusieurs prestataires. Le compte de chaque prestataire est celui de l'active directory et pour le moment je suis le seul (compte) qui soit administrateur de l'instance.

    Comment faire
    1 - Pour que chacun puisse créer ses propres bases sans être administrateur de mon SQL
    2 - Pour que les prestataires ne puissent allez visiter les bases de données des autres.

    J'espère avec été assez explicite.

    J'attend avec impatience vos avis !

    Merci par avance.

  2. #2
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    18 712
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 18 712
    Points : 43 721
    Points
    43 721

    Par défaut

    Citation Envoyé par gudbes Voir le message
    Bonjour à tous,

    Je viens vous demander conseil !!

    voila le topo : J'ai fait l'installation d'un SQL SERVER STANDARD 2016 sur WINDOWS SERVER STANDARD 2016. Jusque là tout est bon ...

    J'ai donc une seul instance mais plusieurs bases de données appartenant à plusieurs prestataires. Le compte de chaque prestataire est celui de l'active directory et pour le moment je suis le seul (compte) qui soit administrateur de l'instance.

    Comment faire
    1 - Pour que chacun puisse créer ses propres bases sans être administrateur de mon SQL
    Donnez à la connexion le privilège CREATE ANY DATABASE
    2 - Pour que les prestataires ne puissent allez visiter les bases de données des autres.
    Ils ne verrons pas les bases des autres
    J'espère avec été assez explicite.

    J'attend avec impatience vos avis !

    Merci par avance.


    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  3. #3
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    3 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 3 420
    Points : 5 611
    Points
    5 611
    Billets dans le blog
    1

    Par défaut

    Y'a quand même un truc très moyen, que je n'ai jamais réussi à résoudre sans passer par une instance par prestataire / client : le fait que soit tout le monde voit la liste de toutes les bases, soit que personne ne voit aucune base dans la liste (mais peut s'y connecter s'il connaît le nom).

    Il serait appréciable qu'on ne puisse voir que les bases auxquelles on a accès.
    On ne jouit bien que de ce qu’on partage.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Expérimentateur :)
    Inscrit en
    novembre 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expérimentateur :)
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : novembre 2016
    Messages : 9
    Points : 6
    Points
    6

    Par défaut

    J'ai un sql server standard qui (soit disant) me permet 50 instances. J'ai pensé faire une instance par prestataire mais en regardant des forums ... ça ne semblait pas recommander ... qu'en pense tu ... Est mieux sécurisé que de passer par une seule instance ?

    Merci de tes conseils

  5. #5
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    3 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 3 420
    Points : 5 611
    Points
    5 611
    Billets dans le blog
    1

    Par défaut

    Le souci de démultiplier les instances, c'est que ça gaspille énormément de ressources (moteur de base de données en double, bases systèmes en double, pas de partage du cache et de la mémoire, etc.)

    Personnellement, je m'en sert plutôt pour séparer DEV/TEST/PROD sur un même serveur : chaque instance peut avoir un paramétrage différent, être redémarrer indépendamment, etc.
    Après, pour mettre plusieurs bases de PROD, c'est pas la première option vers laquelle je me tournerais. Mais dans ton cas, c'est à mon sens la seule solution d'avoir une imperméabilité totale entre les bases.

    L'autre avantage, c'est que si un prestataire doit patcher son serveur, modifier des paramètres de l'instance, il peut le faire sans impact sur les autres.
    On ne jouit bien que de ce qu’on partage.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Expérimentateur :)
    Inscrit en
    novembre 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expérimentateur :)
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : novembre 2016
    Messages : 9
    Points : 6
    Points
    6

    Par défaut

    Malheureusement je pense que la solution des instances par prestataires ne va pas pouvoir être possible car il y a 6 prestataires donc 6 instances... Ce qui sera sûrement trop gourmand pour mon installation. As tu des recommandations pour moi... Pour mettre en place un minimum de sécurité entre les différents prestataires et bases. J'ai cru comprendre qu'il était possible de cacher toutes les bases et que seul ceux qui connaissent le nom de la base peuvent y accéder. C'est peut être très superflu mais ça peut être un bon début non ? Si oui pourrais tu m'expliquer stp comment mettre cela en place.

    Merci !

  7. #7
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    18 712
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 18 712
    Points : 43 721
    Points
    43 721

    Par défaut

    Citation Envoyé par gudbes Voir le message
    Merci @SQLpro pour ton aide.
    Je suis vraiement un novice sous SQL server et je ne sais pas ou indiquer ton conseil. Voila les écrans sur lesquels je me pose des questions [...]
    L'IHM ne permet pas correctement de gérer les privilèges.

    pour donner le privilège que j'ai indiqué au compte de connexion, il suffit de lancer la commande GRANT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT CREATE ANY DATABASE TO nom_compte_connexion;
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  8. #8
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    18 712
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 18 712
    Points : 43 721
    Points
    43 721

    Par défaut

    Citation Envoyé par StringBuilder Voir le message
    Le souci de démultiplier les instances, c'est que ça gaspille énormément de ressources (moteur de base de données en double, bases systèmes en double, pas de partage du cache et de la mémoire, etc.)
    Non seulement cela gâche énormément de ressources mais il faut paramétrer la RAM, les CPU, isoler les accès disques... Et surtout cela multiplie les scripts de maintenance : sauvegarde, vérification d'intégrité du stockage, maintenance des index et statistiques, audit du stockage...

    L'autre avantage, c'est que si un prestataire doit patcher son serveur, modifier des paramètres de l'instance, il peut le faire sans impact sur les autres.
    Aujourd'hui la plupart des paramètres de niveau serveur sont "descendus" au niveau de la base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER DATABASE ... SCOPED CONFIGURATION...
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Expérimentateur :)
    Inscrit en
    novembre 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expérimentateur :)
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : novembre 2016
    Messages : 9
    Points : 6
    Points
    6

    Par défaut

    Citation Envoyé par SQLpro Voir le message
    L'IHM ne permet pas correctement de gérer les privilèges.

    pour donner le privilège que j'ai indiqué au compte de connexion, il suffit de lancer la commande GRANT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT CREATE ANY DATABASE TO nom_compte_connexion;
    A +
    Merci de ton aide

    Juste pour etre sur d'avoir bien compris cette commande permet de donner le droits de créer des bases au différents compte de connexion. Par contre y a t il autres choses à changer en droit (db_owner, public, ....)

  10. #10
    Membre expérimenté
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    octobre 2012
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : octobre 2012
    Messages : 815
    Points : 1 668
    Points
    1 668

    Par défaut

    Citation Envoyé par StringBuilder Voir le message
    Il serait appréciable qu'on ne puisse voir que les bases auxquelles on a accès.
    Je ne me souviens plus si cela fait ce que tu veux, mais il me semble que oui, non?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    /*https://www.mssqltips.com/sqlservertip/2995/how-to-hide-sql-server-user-databases-in-sql-server-management-studio/
    DO NOT MAKE CHANGES IN PRODUCTION WITHOUT PROPER TESTINGS IN LOWER-LIFE CYCLE ENVIRONMENTS
    Only sysadmins and database owners can see databases
    Conclusion
    There are limited options to hiding databases. Once you hide all databases the only logins that can see the databases are the logins that are the owners of the database or if the login is a sysadmin.  Also, each database can only have one owner, so you can't assign multiple owners to the same database.
    */
     
    USE MASTER
    GO
    DENY VIEW ANY DATABASE TO PUBLIC
    GO
     
    --For a specific user
    USE MASTER
    GO
    DENY VIEW ANY DATABASE TO USER_A;
    GO
    Ce que nous avons fait pour nous-même meurt avec nous, ce que nous avons fait pour les autres et le monde est immortel. Albert Pike

    http://www.datacrossroad.be

  11. #11
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    3 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 3 420
    Points : 5 611
    Points
    5 611
    Billets dans le blog
    1

    Par défaut

    Malheureusement non, ce droit est vrai pour toutes les bases.

    Le but, c'est que userA voit base1 et base2, alors que userB voit base3 et base4
    On ne jouit bien que de ce qu’on partage.

  12. #12
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : décembre 2007
    Messages : 327
    Points : 669
    Points
    669

    Par défaut

    Pour le coup des instances par prestataire cela augmente également le coût les licences car les licences sont facturé par instance ...

    En plus des problèmes d'administration ....


    Seul alternative des droits spécifiques par user ou groupe d'utilisateur mais en se connectant via management studio les utilisateurs pourront toujours voir les bases disponibles même sans y avoir accès...


    A+
    MCSA SQL SERVER |MCT | MVP Data Platform

  13. #13
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    3 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 3 420
    Points : 5 611
    Points
    5 611
    Billets dans le blog
    1

    Par défaut

    (ou inversement, ils ne voient aucune base, même pas celles auxquelles ils peuvent se connecter)
    On ne jouit bien que de ce qu’on partage.

Discussions similaires

  1. wow lenteur de mes bases !?
    Par jlfprofoto dans le forum Access
    Réponses: 5
    Dernier message: 10/12/2007, 14h23
  2. Réponses: 5
    Dernier message: 11/11/2007, 15h24
  3. Sécurisation de ma base
    Par bitou11 dans le forum Sécurité
    Réponses: 2
    Dernier message: 22/10/2007, 09h55
  4. Problème de fichiers dans les dossiers de mes bases
    Par grinder59 dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 20/07/2007, 20h14
  5. Réponses: 7
    Dernier message: 12/01/2006, 20h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo