2008-09-08 3 views
2

Ich habe eine MS-Access-Anwendung, die auf MS-SQL-DB über eine ODBC-Verbindung zugreifen. Ich versuche, meine Benutzer zu zwingen, die Daten nur über den Anwendungsabschnitt zu aktualisieren, aber es ist mir egal, ob sie die Daten direkt oder über ihre eigenen benutzerdefinierten ms-Zugriff db lesen (sie verwenden es zum Erstellen von Ad-hoc-Berichten).Wie kann ich meine MS-SQL-Datenbank von meinen Benutzern sperren und dennoch über ODBC darauf zugreifen?

Ich suche nach einer Möglichkeit, die Daten nur editierbar zu machen, wenn sie die kompilierte .mde-Datei verwenden, die ich an sie verteilt habe. Ich weiß, dass ich die Daten nur für die allgemeine Bevölkerung lesen und für ausgewählte Benutzer bearbeiten kann.

Gibt es eine Möglichkeit, ich ms-sql, um die Daten nur dann editierbar zu machen, wenn sie über die meine gespeicherten mde zugreifen?

Dachte, gibt es eine Möglichkeit, MS-Zugang zu erhalten, um sich als ein anderer Benutzer in der Datenbank anzumelden (oder den Login einmal zu ändern)?


@Jake,
Ja, es ist die Verwendung von Formularen. Ich möchte nur die Benutzer wechseln lassen, wenn mein Launchpad/Hauptmenü erscheint.

@Peter,
Das ist in der Tat die Richtung, die ich gehe. Was ich nicht bestimmt habe, war, wie ich zu dieser zweiten ID wechseln soll. Ich bin nicht so besorgt über das Passwort geschnüffelt werden, sind die Benutzer alle internen und in einem internen LAN. Wenn sie dieses Passwort ausspionieren können, können sie sicher das eine für meine privilegierte ID schnüffeln.

@no ein im allgemeinen,
Gerade jetzt seine Sicherheit durch Dunkelheit. Ich habe den Anwendungen eine spezielle .mdb für die Berichterstattung gegeben, die sie Daten lesen, aber nicht aktualisieren lassen. Sie wissen nicht, ob sie über die ODBC-Verbindung zu den Tabellen zurückkehren sollen. Ein etwas mehr ms-access/DB-fähiger Benutzer könnte das, was ich in Sekunden getan habe, passieren - und da einige, die sich selbst als DBA vorstellen, werden sie es irgendwann herausfinden.

Antwort

2

Es gibt eine Möglichkeit, dies zu tun, die mit internen Benutzern wirksam ist, aber gehackt werden kann. Sie erstellen zwei IDs für jeden Benutzer. Eine ist eine Reporting-ID, die nur Lesezugriff hat. Dies ist die ID, die der Benutzer kennt: Fred/mypassword

Die zweite ist eine ID, die Updates durchführen kann. Diese ID ist Fred_app/mypassword_migled. Sie melden sich mit Fred bei Ihrer App an. Wenn Ihre Anwendung auf Daten zugreift, verwendet sie die Anwendungs-ID.

Dies kann geschnüffelt werden, aber für viele Anwendungen ist es ausreichend.

1

Erlauben Sie App für verknüpfte Tabelle Updates oder geht es durch Formulare? Klingt wie Ihre Idee, einen zentralisierten Benutzer mit verschiedenen Rollen zu verwenden, ist der Weg zu gehen. Ja, Sie könnten die Benutzer ändern, aber ich könnte mehr Code einführen und sobald Sie anfangen, mehr und mehr Code hinzuzufügen, klingen andere Lösungen (gespeicherte Prozeduren usw.) vielleicht einladender.

Verwandte Themen