2009-07-02 13 views
1

Gibt es eine Möglichkeit, den Zugriff von SQL Server Management Studio auf SQL Server auf den Datenbankserver zu beschränken? Oder zu einer bestimmten IP-Adresse?SQL Server beschränkt den Zugriff nur auf den lokalen Server

Der Fall ist, dass eine Gruppe von Benutzern (in einer Windows-Gruppe) Zugriff auf die Datenbank über eine Anwendung gewährt wird, der Zugriff jedoch mit SQL Server Management Studio verweigert werden sollte.

Ich habe mehrere Artikel über Anwendungsrollen und so weiter gelesen, aber ich muss in die Datenbank mit authentifizierten Benutzern gehen.

Antwort

0

Management Studio ist auch nur ein Client, also gibt es nicht viel, was Sie tun können, um sie dort zu deaktivieren.

was Sie tun könnten, ist, ihren Zugang zu Win-Accounts zu verweigern, so dass sie nicht in der Lage wären, sich über SSM zu verbinden.

dann hat jeder Benutzer in Ihrer App seinen eigenen sql-Login, mit dem er sich verbindet, aber das Passwort muss vor ihnen verborgen sein.

2

In MS SQL 2008 (nicht sicher 2005) Sie eine DLL-Trigger auf Anmeldeereignis

CREATE TRIGGER trigger_name 
    ON ALL SERVER 
    [ WITH <logon_trigger_option> [ ,...n ] ] 
    { FOR | AFTER } LOGON 

zu definieren, einen Anwendungsnamen schreiben können, können Sie eine Anweisung wie folgt

select program_name from master.dbo.sysprocesses with (nolock) 
where spid = @@spid 

verwenden In meinem Fall gibt diese Abfrage 'Microsoft SQL Server Management Studio' zurück Sie können also Programmname überprüfen und einen Fehler auslösen. Ich weiß nicht, was passiert, wenn Sie einen Fehler innerhalb LOGON auslösen, aber Sie können dies ausprobieren.

Wenn dies nicht in der von Ihnen erwarteten Weise funktioniert, dh dem Benutzer nicht der Zugriff auf die Datenbank verweigert wird, können Sie zumindest einen Datensatz in eine Protokolltabelle schreiben, in der ein Benutzer versucht, mit MS SQL auf die Datenbank zuzugreifen MS, damit Sie einige administrative Maßnahmen ergreifen können.

Diese Methode sollte jedoch als nur als temporäre Lösung betrachtet werden. Sie sollten Benutzer, Rollen und Schemata zum Schutz Ihrer datenbanksensitiven Daten verwenden. Einige Daten (Passwörter, Kreditkartennummern) sollten in verschlüsselten Spalten gespeichert werden.

Berücksichtigen Sie, dass Ihre Benutzer von Access und Excel, von jeder Anwendung, die ODBC oder nativen .NET-Client unterstützt, eine Verbindung mit der Datenbank herstellen können ... Sie können sogar ein kleines VBScript schreiben, um über ADO eine Verbindung herzustellen. Daher gibt es viele verschiedene Tools und Anwendungen, die den Benutzern die Daten in den Tabellen zeigen können. Und es ist keine gute Möglichkeit, den Zugriff nach Anwendungsnamen zu beschränken. Er sollte mit Standardsicherheitsoptionen eingeschränkt werden.

Verwandte Themen