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

Développement SQL Server Discussion :

Tables en lecture seule


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Homme Profil pro
    PARIS
    Inscrit en
    Mars 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : PARIS
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2017
    Messages : 32
    Points : 15
    Points
    15
    Par défaut Tables en lecture seule
    Bonjour,

    Je souhaiterais avoir des conseils sur la meilleure manière de procéder pour passer une base SQL en semi lecture seule.
    Ma problématique est la suivante.
    Une base SQL Server va être migrée dans un nouvel environnement (passage sous un ERP).

    Les utilisateurs ne vont plus pouvoir se connecter pour effectuer des insert et des update mais ils doivent pouvoir consulter des données et lancer des impressions.

    Ils doivent aussi pouvoir pendant 1 semaine saisir des données dans une table spécifique.

    Pour certaines procédures et impressions des tables temporaires sont créées.

    Si je passe la base en lecture seule je vais devoir à chaque impression ou chaque saisie concernée passer temporairement la base en écriture puis la repasser en lecture seule.
    Idem si je mets les user en db_datareader.

    Y aurait-il un moyen de faire autrement ?
    Laisser certaines tables en lecture/ecriture et d'autres en lecture seule ou quelque chose de ce genre ?

    Quelqu'un aurait-il des conseils à me communiquer ?

    Merci par avance.

    Bonne journée.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Vous pouvez passer par les privilèges pour interdire les modifications

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DENY INSERT, UPDATE, DELETE ...

  3. #3
    Membre à l'essai
    Homme Profil pro
    PARIS
    Inscrit en
    Mars 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : PARIS
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2017
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Bonsoir

    Effectivement cela semble correspondre à ce que je souhaite faire et cela ne me semble pas trop lourd à mettre en oeuvre.

    Merci.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Mettre les users en db_datareader + donner les droits d'écriture seulement sur la table question.

  5. #5
    Membre à l'essai
    Homme Profil pro
    PARIS
    Inscrit en
    Mars 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : PARIS
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2017
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Merci

  6. #6
    Membre à l'essai
    Homme Profil pro
    PARIS
    Inscrit en
    Mars 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : PARIS
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2017
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    J'ai essayé les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DENY INSERT, UPDATE on tableName to connectUser
    Mais cela ne fonctionne pas.

    Les update sont effectués.

    L'utilisateur connectUser est db_datareader et db_datawriter de la base.

    Cela signifie t-il que ces droits prévalent sur les ordres DENY donnés ?

    Ou est-ce un problème de syntaxe ?

    Merci

  7. #7
    Membre à l'essai
    Homme Profil pro
    PARIS
    Inscrit en
    Mars 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : PARIS
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2017
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Au temps pour moi cela fonctionne.

    C'était un problème de privilèges par ailleurs.

    Merci.

  8. #8
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Attention toutefois avec les privilèges, vu que vous semblez passer par des procédures stockées.

    Si le propriétaire de la procédure stockée est le même que le propriétaire des tables, alors l'utilisateur qui a le droits d’exécuter une procédure qui mets à jours des tables ne sera pas bloqué, en raison du chainage de propriété.

  9. #9
    Membre à l'essai
    Homme Profil pro
    PARIS
    Inscrit en
    Mars 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : PARIS
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2017
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Oui mais là justement j'ai le problème inverse.

    Si je fais un j'obtiens le résultat.

    Mais si je lance une procédure stockée qui fait la même chose j'ai une erreur d'autorisation.

    En l'occurrence le propriétaire de la sp est dbo

    Une idée ?

    Merci

  10. #10
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    quelle erreur ?

    Je pense plutôt a un refus d'execution de la procédure non ?

  11. #11
    Membre à l'essai
    Homme Profil pro
    PARIS
    Inscrit en
    Mars 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : PARIS
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2017
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Oui tout à fait.

    Un refus d'exécution de la procédure

  12. #12
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    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 : 4 153
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Il faut octroyer l'autorisation EXECUTE
    On ne jouit bien que de ce qu’on partage.

  13. #13
    Membre à l'essai
    Homme Profil pro
    PARIS
    Inscrit en
    Mars 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : PARIS
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2017
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Merci.

    Oui mais alors cela devient un peu compliqué par rapport à ce que je veux faire.
    Car je suis obligé d'accorder des autorisations EXECUTE sur toutes les SP.

    Et, dans ce cas, comme je donne aussi des autorisations sur les SP avec des INSERT et des UPDATE, les utilisateurs peuvent à nouveau faire des INSERT et des UPDATE.
    Et isoler les SP qui font des INSERT et des UPDATE, sur 1300 et quelques SP pour ne pas leur accorder les autorisations c'est un peu compliqué.

    Je ne peux même pas passer la base en lecture seule et la repasser temporairement et selon les besoins en lecture/ecriture car pour faire cela il ne faut qu'un utilisateur connecté.

    Je crois que je vais faire cela côté client car je ne vois pas de solution simple.

    Bonne journée.

  14. #14
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    non, vous pouvez appliquer le privilège sur le(s) schéma(s), ou utiliser les vues d'information schéma pour lister les SP et générer les ordres GRANT EXECUTE....

    pour le reste, vous pouvez changer le propriétaires des SP pour qu'il soit différent de celui des tables. Ainsi, les privilèges seront vérifiés au moment de l'exécution. Cela peut toutefois avoir des effets de bords si l'existant s'appuie déjà sur le chainage de propriété pour effectuer certaines actions.

  15. #15
    Membre à l'essai
    Homme Profil pro
    PARIS
    Inscrit en
    Mars 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : PARIS
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2017
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Merci,

    Je vais fouiller dans cette direction.

    Mais effectivement je crains un peu les effets de bord.
    Avec les vues, les fonctions...

    Merci encore.

    Bonne soirée

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

Discussions similaires

  1. Projet ADP + SQL Server : tables en lecture seule
    Par hannii dans le forum Access
    Réponses: 8
    Dernier message: 09/03/2007, 14h16
  2. [MySQL] Table en lecture seule
    Par Iodev dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/10/2006, 15h39
  3. [DAO - ACCESS]Creation Table en lecture seule
    Par thanae dans le forum Access
    Réponses: 3
    Dernier message: 07/12/2005, 09h36
  4. Réponses: 3
    Dernier message: 31/01/2005, 23h24
  5. [TQuery][DBGRID] pb de mise à jour: table en lecture seule
    Par Chrystèle Carré dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/11/2003, 09h36

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