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 :

Erreur 3184 pour toute modification en VBA après modification du schema DBO [2016]


Sujet :

Développement SQL Server

  1. #1
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut Erreur 3184 pour toute modification en VBA après modification du schema DBO
    Voici mon pb :
    J'ai créé une base dans SQL Server 2016 Express, il y a 3 mois. Depuis, je crée une application avec ACCESS comme IHM ( en langage vba).
    Les tables de la BD SQL sont attachées dans mon applli Access.
    Tout fonctionnait bien avec le schema de base 'dbo'.
    Ajourd'hui je l'ai modifié en 'opa' pour pouvoir gérer les permissions plus facilement (d'après ce que j'ai compris). Depuis je peux attacher les tables SQL dans Access
    mais dès que je modifie une donnée Access j'ai une erreur 3184 " la table est introuvable".
    Sous SSMS, si je modifie : j'obtiens le message " ... source d'erreur : .Net sqlClient DataProvider. Nom d'objet 'dbo.t_users' non valide : alors que la table est bien affichée opa.T_users ! )
    Je pense que j'ai créé incomplètement le nouveau schéma. Voici ce que j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     -- sous SA
    CREATE SCHEMA opa
    -- ensuite pour chaque table
    ALTER SCHEMA opa TRANSFER dbo.T_users
    Ca fait quelques heures que je tourne en boucle ...
    Merci à tous ceux qui pourront m'éclairer !
    "Always look at the bright side of life." Monty Python.

  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
    21 770
    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 : 21 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    Il faut nommer vos tables opa.T_users dans les objets ACCESS sinon il essaye toujours de les chercher dans le schéma SQL dbo...

    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
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Merci de votre réponse.
    Pourtant, j'essaie de reproduire le mécanisme d'une appli que j'ai créée en 2009 pour une assurance avec Access et Sql Serveur 2005 (qui a migrée depuis en 2008 puis 2012) et qui fonctionnait très bien.
    A l'époque, ce n'est pas moi qui avais mis en place les utilisateurs et les privilèges sur la base.

    Dans mon appli actuelle, sous Access, le nom de la table liée ne comporte pas le schéma. Mais je vérifie :
    currentdb.tabledefs("T_contrat").connect = ODBC;DSN=CNX_OPERA_DEV;Description=développement OPERA;Trusted_Connection=Yes;APP=Microsoft Office 2010;DATABASE=OPERA_DEV;ServerSPN=XPS15-51BMC3A\SQLEXPRESS;
    currentdb.tabledefs("T_contrat").SourceTableName = opa.T_contrat
    Un autre point : Access n'accepte pas de . dans le nom d'une table liée ou locale.

    En fait, C'est la création de mon SCHEMA opa dans ma base qui n'est pas correct. j'ai déjà l'erreur en modification sous SSMS. Effectivement il essaie de retourner la modfi à dbo.T_contrat !
    Donc il faut que je complete mon schema opa en l'attribuant à un role mais lequel ?
    Mon but est raisonnable : j'ai une trentaine de tables et je veux attribuer les mêmes permissions à tous mes utilisateurs (authentification Windows) qui sont dans un groupe windows usersOpera

    A+
    "Always look at the bright side of life." Monty Python.

  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
    21 770
    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 : 21 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    Vous mélangez beaucoup de chose. Un schéma SQL est un conteneur d'objet au même titre qu'un tiroir d'une commode. Il n'a rien à voir au niveau de la sécurité. Mais il est vrai que Microsoft SQL Server entretient la confusion en ayant un schéma SQL de nom dbo et un utilisateur SQL de nom dbo. Ces deux objets n'ayant rien à voir l'un avec l'autre. C'est un peu comme si vous me parliez de R6... qui peut être indifféremment :
    une voiture de Renault : https://www.google.com/url?sa=i&url=...AAAAAdAAAAABAO
    une moto de Yamaha ! : https://www.google.com/url?sa=i&url=...AAAAAdAAAAABAE

    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
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Je suis évidemment pour le moment un peu perdu face à la diversité des concepts nécessaires à l'administration de SQL S !
    Cependant mon pb est simple :
    Dans SSMS tout fonctionnait bien dans ma base avec le schema par défaut dbo
    je modifie ce schema en opa connecté avec sa , je ne peux plus modifier aucune donnée

    En fait je cherche des bons exemples de création de schema et aussi d'affectation de permission. On trouve surtout via Google des exemples partiels dénués de contexte.
    A+
    "Always look at the bright side of life." Monty Python.

  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
    21 770
    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 : 21 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    Il n'y a pas d'intérêt pour une petite base d'avoir déplacé vos objets de dbo à un nouveau schéma. L'intérêt de la notion de schéma SQL est évident dans deux cas de figure :
    la base comporte beaucoup d'objets : exemple SAP (30 000 tables)... Comment retrouver les tables de la comptabilité, la production, la RH ? En les ayant ventilées dans différents schéma.
    la base nécessite des accès très différents en fonction de la conjonction utilisateur/objets. Par exemple, l'utilisateur "Producteur" a les privilèges de lire/écrire les données dans le schéma "Production", de lire mais pas écrire dans le schéma "Référentiel" et aucun privilège dans aucun autre schéma.

    En dehors de cela déplacer des objets d'un schéma a un autre en croyant avoir réglé les privilège n'a aucun sens.

    À me lire : https://blog.developpez.com/sqlpro/p..._et_utilisateu

    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/ * * * * *

  7. #7
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Merci, SqlPro. Je vais approfondir tout ça et notamment l'article de ton blog.
    "Always look at the bright side of life." Monty Python.

  8. #8
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Finalement je suis revenu au SCHEMA dbo et tout est rentré dans l'ordre (reste un soupçon de frustration)
    Merci SqlPro
    "Always look at the bright side of life." Monty Python.

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 770
    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 : 21 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Il n'y a pas d'intérêt pour une petite base d'avoir déplacé vos objets de dbo à un nouveau schéma. L'intérêt de la notion de schéma SQL est évident dans deux cas de figure :
    • la base comporte beaucoup d'objets : exemple SAP (30 000 tables)... Comment retrouver les tables de la comptabilité, la production, la RH ? En les ayant ventilées dans différents schémas.
    • la base nécessite des accès très différents en fonction de la conjonction utilisateur/objets. Par exemple, l'utilisateur "Producteur" a les privilèges de lire/écrire les données dans le schéma "Production", de lire mais pas écrire dans le schéma "Référentiel" et aucun privilège dans aucun autre schéma.


    En dehors de cela déplacer des objets d'un schéma a un autre en croyant avoir réglé les privilèges n'a aucun sens.

    À me lire : https://blog.developpez.com/sqlpro/p..._et_utilisateu

    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/ * * * * *

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/11/2008, 10h01
  2. Install .dot en VBA pour tout les utilisateurs
    Par TSalm dans le forum VBA Word
    Réponses: 5
    Dernier message: 17/06/2008, 09h08
  3. Valider pour empecher toute modification
    Par jojodid dans le forum IHM
    Réponses: 8
    Dernier message: 07/05/2008, 18h04
  4. pour toute chaine - erreur de doublon
    Par chapeau_melon dans le forum WinDev
    Réponses: 6
    Dernier message: 04/03/2008, 10h37
  5. Comment arreter une Sub dans VBA apres une erreur
    Par deubelte dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/08/2007, 16h13

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