2010-04-09 6 views
0

"Je vais utiliser un Access ADP" J'ai dit: "Ce n'est qu'un petit projet et j'ai de meilleures choses à faire", j'ai dit: "Je peux créer une interface très rapidement dans Access "J'ai dit.MS Access: problèmes de permissions avec les vues

</sarcasme >

Désolé pour la diatribe, mais il est vendredi, j'ai une date dans un peu moins de deux heures, et je suis ici parce que ce retard ne fonctionne tout simplement - si, dans le désespoir, Je me tourne vers SO pour de l'aide.

  • frontal d'accès ADP, lié à une base de données SQL Server 2008
  • Utilisation d'un compte SQL Server pour se connecter à la base de données (pour les tests); ce compte est un membre du rôle "Api"; ce rôle SELECT, execute, INSERT, UPDATE, DELETE accès au schéma « Api »
  • Le schéma « Api » appartient « dbo »
  • Toutes les tables ont une vue correspondante dans le schéma Api: par exemple dbo.Customer -> Api.Customers
  • La raison est que les utilisateurs n'ont pas accès à la table directe, mais ils peuvent faire face à des vues comme si elles étaient des tables

je peux connecter à SQL en utilisant mon login test , et ça marche bien: pas d'accès aux tables, mais je peux sélectionner, insérer, mettre à jour et supprimer des vues Api.

Dans Access, je vois les vues, je peux les ouvrir, mais chaque fois que je tente d'insérer ou de mettre à jour, je reçois l'erreur suivante:

The SELECT permission was denied on the object '[Table name which the view is using]', database '[database name]', schema 'dbo'

fou que cela puisse paraître, l'accès semble essayer de accéder à la table sous-jacente plutôt qu'à la vue.

Des idées?

+0

Un tir, mais est-il une clé primaire identifiée pour accéder par la vue? – Knox

+0

ADO choisit parfois de contourner les autorisations d'affichage et d'essayer d'appliquer les mises à jour aux tables sous-jacentes. C'est par définition qu'ADO peut mettre à jour des données dans une instruction SQL qui pourrait autrement ne pas être mise à jour (c'est bien), mais l'inconvénient est qu'il ne le fait pas parfois quand il n'en a pas besoin (comme c'est peut-être le cas avec ta vue). C'est l'un des nombreux défauts de l'ADO classique et l'une des raisons pour lesquelles de nombreux développeurs d'accès avancés ont abandonné les ADP il y a des années. Vous réalisez que Microsoft déprécie les ADP en faveur de MDB/ODBC depuis environ 5 ans, n'est-ce pas? –

+0

@Knox: Je vais essayer, et voir si cela fait une différence .. @David: Oui, je sais à quel point les ADP sont (croyez-moi, je sais); Je pourrais essayer MDB/ODBC, mais si cela devient trop pénible, je pourrais essayer de convaincre la direction de me donner quelques semaines supplémentaires et de simplement construire un front-end ASP.NET avec des services de reporting. Merci pour l'info cependant - utile! –

Répondre