2009-06-03 7 views
0

J'ai un projet Access 2007 avec un backend SQL Server 2005. Cependant, lors de la création d'une nouvelle procédure stockée à l'intérieur d'accès, il arrive avec une erreur:Création d'une procédure stockée SQL Server à partir d'Access 2007 - modification du schéma

ADO error: The specific schema name DOMAIN\username either does not exist or you do not have permission to use it

Comment pouvez-vous créer une procédure stockée en utilisant le schéma « dbo » à la place? La boîte de dialogue des propriétés de la procédure stockée possède la liste déroulante "owner" définie sur le nom d'utilisateur et ne peut pas être modifiée en dbo, même si l'utilisateur est dans le rôle "db_owner".

+0

qui (quel utilisateur) exécute l'application frontale Access et envoie la requête T-SQL au serveur? –

+0

Plusieurs utilisateurs sont propriétaires de bases de données (pour créer des procédures stockées, des formulaires, etc.). Les autres utilisateurs doivent être plus restreints - afficher uniquement les données et exécuter certaines procédures stockées – SamWM

+0

Les utilisateurs créant les procédures stockées sont membres de db_owner – SamWM

Répondre

0

Géré pour le résoudre. Si vous définissez l'utilisateur propriétaire de la base de données (plutôt qu'un utilisateur avec le rôle db_owner), lorsque vous créez une procédure stockée dans Access 2007, il la crée sous le schéma dbo plutôt que DOMAIN \ nomutilisateur.

Étapes de le faire (en Management Studio):

  • base de données Clic droit, sélectionnez Propriétés
  • Cliquez sur Fichier
  • Changer de propriétaire dans la zone de texte
  • OK pour confirmer

Inconvénient: d'autres utilisateurs sous le rôle db_owner verront toujours leur nom d'utilisateur ajouté. Des schémas doivent donc être créés pour ces utilisateurs.

0

OK Je voudrais que les personnes créent le procs sur SQL Server à la place où vous pouvez ajouter dbo au code de proc de création. Si vous ne pouvez pas le faire, vous pouvez peut-être exécuter du code pour modifier le propriétaire après sa création à l'aide de sp_changeobjectowner

0

Essayez de faire de l'utilisateur un membre du schéma dbo plutôt que db_owner. C'est comme ça que je le fais. En outre, vous pouvez regarder l'outil de gestion SQL Server spécifique (Management Studio fourni avec SQL Server 2005 ou les versions express 2005 ou 2008 qui sont des téléchargements gratuits), ceci fournit une interface plus riche pour le type DDL les tâches.

+0

J'utilise Management Studio moi-même, ce qui est également une option (si je ne trouve pas d'autre solution ce problème). Cependant, il est plus facile pour les utilisateurs de créer les procédures stockées dans Access (pas besoin d'écrire de code SQL). Les formulaires et les macros dans Access exécuteront ces procédures stockées. – SamWM

+0

J'utilise le complément gratuit sur http://www.ssmstoolspack.com/ pour Management Studio, entre autres choses, cela vous donne des outils de créations CRUD SP automatiques. Peut-être que cela va aider? – Simon

+0

Je n'ai pas de liste dbo, juste les rôles db_ * (comme c'est un schéma, pas un rôle). L'utilisateur a déjà dbo comme schéma par défaut, mais Access ne l'utilise pas – SamWM

Questions connexes