Windows-Authentifizierung und Zugriff beschränken.

06/05/2009 - 14:43 von Lutz Uhlmann | Report spam
Hallo NG!

Habe mal eine Frage! Ich habe eine Anwendung die auf meinen 2005er
SQL-Server zugreift.
Für die Authentifizierung nutze ich Windows-Authentifizierung, der Zugriff
wird über eine Windows-Benutzergruppe geregelt, der die einzelnen Nutzer
angehören.

Windows-Nutzer -> Windows-Gruppe -> Datenbankrolle -> Datenbank

Bei diesem Prinzip habe ich doch aber das Problem, daß grundsàtzlich jemand
mit einem Datenbank-Tool und seinem Windows-Login auch auf die Datenbank
kommt und dort auch Daten in den Tabellen àndern kann (im Rahmen der
Berechtigungen der Datenbankrolle).

Kann man dies irgendwie beeinflussen? Kann ich irgendwie verhindern, daß die
Daten auch außerhalb meines Programmes geàndert werden?

Eine Idee wàre ja der Anwendung einen eigenen SQL-Nutzer zu geben bzw eine
Anwendungsrolle.
Kann ich eventuell auch prüfen über welche Software der Zugriff erfolgt und
darauf evtl reagieren?

Lutz
 

Lesen sie die antworten

#1 Olaf Pietsch
07/05/2009 - 14:49 | Warnen spam
Hallo Lutz,
"Lutz Uhlmann" schrieb im Newsbeitrag
news:

Habe mal eine Frage! Ich habe eine Anwendung die auf meinen 2005er
SQL-Server zugreift.
Für die Authentifizierung nutze ich Windows-Authentifizierung, der Zugriff
wird über eine Windows-Benutzergruppe geregelt, der die einzelnen Nutzer
angehören.

Windows-Nutzer -> Windows-Gruppe -> Datenbankrolle -> Datenbank

Bei diesem Prinzip habe ich doch aber das Problem, daß grundsàtzlich
jemand mit einem Datenbank-Tool und seinem Windows-Login auch auf die
Datenbank kommt und dort auch Daten in den Tabellen àndern kann (im Rahmen
der Berechtigungen der Datenbankrolle).

Kann man dies irgendwie beeinflussen? Kann ich irgendwie verhindern, daß
die Daten auch außerhalb meines Programmes geàndert werden?

Eine Idee wàre ja der Anwendung einen eigenen SQL-Nutzer zu geben bzw eine
Anwendungsrolle.
Kann ich eventuell auch prüfen über welche Software der Zugriff erfolgt
und darauf evtl reagieren?



Man kann ggf. Application Roles verwenden,
Anwendungsrollen
http://msdn.microsoft.com/de-de/lib...90998.aspx

oder man verwendet den Mechnismus der Besitzketten:

Bei uns hat kein User Zugriff auf eine Tabelle. Alle Datenzugriffe erfolgen
über Stored Procedures.

Besitzketten sind für den Zugriff auf Datenbankobjekte wichtig:
http://technet.microsoft.com/de-de/...8676.aspx. Damit wird es
grundsàtzlich möglich, dass ein User überhaupt keinen Zugriff auf eine
Tabelle erhàlt, jedoch Datenànderungen, -abfragen über Stored Procedures,
Views, User Defined Functions ausführen kann. Das Tabellenschema der
Datenbank wird so vor der Anwendung (dem User) verborgen und man erhàlt eine
zusàtzliche Software-Schicht.





Gruß Olaf
Ich unterstütze PASS Deutschland e.V. (http://www.sqlpass.de)
Blog (http://www.sqlpass.de/PASSUserBlogs...x?BlogID=3)
Regionalgruppe Köln/Bonn/Düsseldorf
(http://www.sqlpass.de/Regionalgrupp...fault.aspx)

Ähnliche fragen