IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Administration SQL Server Discussion :

Notion de schéma


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Par défaut Notion de schéma
    Bonjour a tous,

    De ce que je comprends la notion de schéma est fondamentale a la création d'une BDD, mieux vaut éviter créer des tables sur le schéma dbo.

    2 choses que je ne comprends pas :
    Le schéma est un conteneur, pourquoi devrais-je créer plusieurs schémas. Faut il réfléchir en business, en catégorie de données, c'est quoi les best practice ?

    Comment est ce que je fais si j'ai des tables communes à plusieurs schémas pour maintenir une cohérence des données ? De ce que je comprends [schema_a].[table_a] n'est pas le même objet que [schema_b].[table_a].

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 001
    Billets dans le blog
    6
    Par défaut
    effectivement laisser tout dans un même schéma est absurde, de même qu'utiliser le schéma par défaut dbo.

    Une base peut contenir autant de schéma qu'on le souhaite pour organiser les objets de sa base (tables, vues, procédures, fonctions...).
    Le but étant de facilité :
    • la sécurité : on peut sécuriser de manière générique l'ensemble des objets d'un schéma (objets actuels et futurs)
    • la modularité : recherche une table parmi 500 est moins facile que de recherche une table parmi 50, parce que la base aura été découpé en 10 schémas...

    Dans la pratique on créé des schémas par rapport à deux axes :
    • l'axe fonctionnel "metier" : par exemple ventes, stock, production, comptabilité...
    • l'axe technique (DBA) : objets communs, objets d'admin, référentiel...


    À me lire :
    https://blog.developpez.com/sqlpro/p...des_schema_sql
    https://blog.developpez.com/sqlpro/p..._et_utilisateu
    § "Privilégier les SCHEMA SQL"


    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...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre éclairé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Par défaut
    Donc il ne faut pas dupliquer des tables "communes" dans plusieurs schémas, si je comprends bien ? Il vaut mieux créer un schéma nommé "common" dans lequel je retrouve ces tables ...

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 001
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Pfeffer Voir le message
    Donc il ne faut pas dupliquer des tables "communes" dans plusieurs schémas, si je comprends bien ? Il vaut mieux créer un schéma nommé "common" dans lequel je retrouve ces tables ...
    Évidemment. Si ces tables sont du référentiel ouvert, vous pouvez donner au rôle "public" les privilèges adéquats pour que tous les utilisateurs puissent y accéder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT SELECT ON SCHEMA::public;
    Si vous voulez que tous les utilisateurs puissent les lire et les modifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT SELECT, INSERT, DELETE, UPDATE, REFERENCES ON SCHEMA::public;
    Sinon, il faudra le faire, utilisateur par utilisateur, ou par le biais de rôle que vous devrez créer.

    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...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre éclairé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Par défaut
    Et pourquoi est il déconseillé de tout mettre dans le schéma dbo ?
    Si on part du principe que la base que l'on gère ne concerne qu'un businness et que les droits sont les mêmes pour tout le monde.

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 001
    Billets dans le blog
    6
    Par défaut
    Ne serait ce que pour une raison de sécurité.

    C'est comme le compte foot de Linux... Tout le monde sait qu'il existe et donc les hzvkers s'en donne à cœur joie parce qu'ils savent déjà la moitié de l'info...

    Personnellement je déconseille totalement l'usage de dbo comme schéma.

    Après séparer le référentiel des données métiers est important ne serait ce que par rapport au rgpd

    Vous avez une obligation de tracer tous les accès aux données sensibles (personnelles) et en créant un schéma pour cela vous pouvez le faire globalement au niveau du schéma ce qui ne prendra pas en compte le référentiel que vous aurez créé dans un autre schéma.

    Ce n''est qu un exemp' e parmi d'autres... il faudrait vous former... mon livre peut vous y aider...
    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...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Modélisation] Schéma constellation
    Par senke dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 13/05/2016, 13h27
  2. Notion d'instances, de schémas
    Par shonguiz dans le forum Oracle
    Réponses: 3
    Dernier message: 03/05/2012, 20h50
  3. Notion de Schéma
    Par crazyday dans le forum Débuter
    Réponses: 6
    Dernier message: 21/07/2009, 17h36
  4. Notion d'algorithme
    Par gtr dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 10/12/2002, 11h46
  5. [Crystal Report 9] Changer de schéma avec Oracle
    Par sur_uix dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/11/2002, 12h19

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