2017-06-26 1 views
0

Nous rencontrons un problème avec une installation, en recevant l'erreur "Invalid object name ...".
Il ne semble pas utiliser l'affectation de schéma par défaut définie sur l'utilisateur Windows.

J'ai mis en place un test dans notre base de données AdventureWorks2012 et je reçois le même résultat.
Lorsque je me connecte à l'instance avec le compte Windows (configuré avec un schéma par défaut "Person" dans la base de données AdventureWorks2012) et que j'exécute l'instruction SELECT * FROM Address, je reçois la même erreur Invalid object name Address.

Ensuite, j'ai créé une connexion SQL, mappé la connexion à la base de données AdventureWorks2012 et à nouveau défini le schéma par défaut sur "Person". Lorsque je me connecte à l'instance à l'aide de la connexion SQL et exécute la commande SELECT * FROM Address, la requête aboutit et renvoie les résultats.
Je rencontre le même résultat à la fois dans SQL 2012 et SQL 2014. Quelqu'un peut-il m'aider avec pourquoi le paramètre de schéma par défaut ne fonctionne pas avec l'utilisateur Windows?Le schéma par défaut ne fonctionne pas avec l'utilisateur Windows

+0

L'utilisateur Windows est-il un membre de rôle sysadmin (c'est-à-dire que SELECT USER renvoie «dbo»)? –

+2

Vous ne devriez vraiment pas compter sur le schéma par défaut de toute façon. Vous devez toujours spécifier le schéma dans vos requêtes. Considérez combien de travail ce serait si le schéma par défaut était modifié à un moment donné dans le futur. –

+0

Je seconde ce que dit @SeanLange. Mais j'aime aussi un bon mystère. L'utilisateur Windows en question appartient-il à plusieurs groupes Windows? Si c'est le cas, ils obtiendront probablement leur schéma par défaut de l'un des autres groupes auxquels ils appartiennent. –

Répondre

0

Résolu mon problème. Il semble que l'appartenance au rôle de base de données db_owner soit également définie par défaut sur le schéma dbo car, une fois le rôle de base de données db_owner supprimé, l'affectation de schéma par défaut est lancée et la requête terminée.

Merci à tous ceux qui ont considéré mon problème.