Zum Inhalt springen

MSSQL User erstellen der nur über localhost zugreifen darf


Gateway_man

Empfohlene Beiträge

Hi leute,

ich suche nun schon seit geraumer Zeit nach dem MSSQL Equivalent für den MySQL Befehl

CREATE USER 'monty'@'localhost'
.

Ich möchte ein MSSQL Loginkonto so modifizieren das dieser nur mit dem IPEndPoint 127.0.0.1 akzeptiert wird.

Muss nicht zwangsläufig eine querry sein. (Hauptsache es geht :)).

lg

Gateway

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich weis das ist nicht exakt das ist was du suchst, aber du kannst einen Windows authentification SQL User anlegen, der sich per Passthrough anmeldet.

Dort kannst dort angeben von welcher Domäne oder von welchem Host der User connecten darf.

Der User den du angeben kannst / musst, geht von einzelnen Windows User Accounts (incl. Guest), über Usergroups, System Prozesse, so ziemlich alles was Windows an Rechtestruktur zu bieten hat.

Hoffe es hilft.

Gruß

Sven

Link zu diesem Kommentar
Auf anderen Seiten teilen

hi,

super danke dir. Ist wenigstens eine Lösung :).

Ich hab jetzt wirklich schon nach allem erdenklichen gegoogled und es scheint wirklich nichts vergleichbares zu existieren.

Werd mal deine Lösung realisieren.

Aber an sich is das schon irgendwo lachhaft. Da hat man eine Vollversion vom SQL05 der mehrere GB an installation frisst und tausenden Funktionalitäten bietet (mit teilweise massig overhead).

Aber sowas simples und kleines wird nicht supported.

Wenns nicht so traurig wäre würd ich lachen.

lg

Gateway

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich versteh nur den anwendungsfall nicht ;-)

Okay dann geb ich mal ein kleines Anwendungsbeispiel.

Ich habe derzeit eine Anwendung von einem Drittanbieter auf meinem Root laufen.

Diese nutzt eine meiner SQL05 Instanzen. Vorab ich bin von grund auf etwas paranoid :).

Nehmen wir mal an die Anwendung telefoniert nachhause und überträgt dabei die logindaten die ich Ihr für den sql server hinzugefügt habe.

Prinzipiell habe ich natürlich ein neues sql konto angelegt mit den minimal benötigten Rechten (Das heißt dieser Account hat nur Zugriff auf die von Ihm angelegte Datenbank).

Allerdings kann/muss dieser Account Zugriff auf System Tables haben um überhaupt rudimentäre Funktionen auzuführen. Da liegt mein Problem. Denn ein gewiefter IT'ler kann so eines mit den System Tables anstellen und auch herausfinden.

Gehen wir davon aus das es möglich wäre das ich ein Konto so einrichten könnte das es sich nur vom Localhost anmelden könnte. Damit wäre das Problem einfacherweise umgangen, da Sie selbst wenn Sie die Daten hätte sich nicht Remote am Server anmelden könnten.

Aus Sicherheitstechnischen Gründen ist das in jedem Fall besser. Es überhaupt zu unterbinden ist besser als das beste Passwort :).

Ein einfacher Vergleich.

Ein man sitzt an seinem PC der mit dem Internet verbunden ist. Dieser man hat ein Administrator Passwort.

Ein weiter Man sitzt an einem Rechner der keine Verbindung zum Internet hat.

Wer von beiden fährt auf der sichereren Schiene? :)

lg

Gateway

Link zu diesem Kommentar
Auf anderen Seiten teilen

In was programmierst Du die Anwendung? Wenn in .NET, könntest Du über die SMO gehen.

Die meisten von mir erstellen Anwendungen auf dem Server sind entweder in Cpp oder in C #. Vereinzelt sind noch ein paar Delphi Anwendungen dabei.

Ich verstehe allerdings den Zusammenhang der Frage nicht wirklich. Wären die Anwendungen alle von mir wäre das ja kein Problem, da ich ja weiß was diese im hintergrund machen.

Es geht ja hierbei um Anwendungen von Drittanbietern, deren Code ich nicht verändern/einsehen kann. Diese nutzten wie schon oben gesagt ebenfalls eine Instanz meines SQL05 Servers.

@streffin:

Das stimmt, ich könnte mich nur schwer von mssql trennen. Hat halt dann doch auch sehr viele nützliche Futures :). Hab auch noch ne maxdb drauf laufen für meine Delphi Anwendungen. Was soll ich sagen man merkt den Unterschied halt doch :D.

lg

Gateway

Link zu diesem Kommentar
Auf anderen Seiten teilen

D.h. Du würdest den User mit den gewünschten Berechtigungen erstellen und der 3rdParty-Anwendung den zur Verwendung geben?

Diese nutzten wie schon oben gesagt ebenfalls eine Instanz meines SQL05 Servers.

Gibt es einen zwingenden Grund dafür dieselbe Instanz zu verwenden?

Normalerweise würde man eine eigene Instanz verwenden und ist dann z.B. auch bei Updates oder verschiedenen Änderungen sicher vor Wechselwirkungen. Das Problem mit den Zugangsdaten hätte sich dann auch erledigt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

D.h. Du würdest den User mit den gewünschten Berechtigungen erstellen und der 3rdParty-Anwendung den zur Verwendung geben?

Natürlich. Die 3rdParty Anwendung unterstützt leider nur mssql.

Gibt es einen zwingenden Grund dafür dieselbe Instanz zu verwenden?

Ja, ich habe momentan nur eine Instanz. Die zweite habe ich offline.

Es gibt einen einfachen Grund dafür. MSSQL Cached gewaltig um Reaktionszeit so gering wie nur möglich zu halten.

Das heißt allein meine momentan laufende Instanz hat eine Arbeitsspeicher Auslastung von 3,5 GB RAM. Den Server den ich gemietet habe verfügt maximal über 4,5 GB RAM.

Ich könnte natürlich der Instanz einen Maximalen Wert für die Arbeitsspeichernutztung eintragen, jedoch würde das die Performance schmälern.

Selbst wenn es Leistungstechnisch ginge würde ich bestimmt nicht für jede 3rd Party Anwendung eine eigene Instanz aufsetzten. Das wäre ja Verwaltungstechnisch Selbstmord, mal ganz von dem Overhead abgesehn.

lg

Gateway

Bearbeitet von Gateway_man
Link zu diesem Kommentar
Auf anderen Seiten teilen

Nehmen wir mal an die Anwendung telefoniert nachhause und überträgt dabei die logindaten die ich Ihr für den sql server hinzugefügt habe.

Prinzipiell habe ich natürlich ein neues sql konto angelegt mit den minimal benötigten Rechten (Das heißt dieser Account hat nur Zugriff auf die von Ihm angelegte Datenbank).

Allerdings kann/muss dieser Account Zugriff auf System Tables haben um überhaupt rudimentäre Funktionen auzuführen. Da liegt mein Problem. Denn ein gewiefter IT'ler kann so eines mit den System Tables anstellen und auch herausfinden.

Gehen wir davon aus das es möglich wäre das ich ein Konto so einrichten könnte das es sich nur vom Localhost anmelden könnte. Damit wäre das Problem einfacherweise umgangen, da Sie selbst wenn Sie die Daten hätte sich nicht Remote am Server anmelden könnten.

Wenn du was gegen deine Paranoia tun willst, dann unterbinde doch einfach Internetzugriffe der Applikation.

Ansonsten bleibt dir auch noch eine eigene MSSQL Instanz auf der du nur Shared Memory Zugriffe aktivierst.

Prinzipiell gibt dir das aber kein Plus an Sicherheit. Die Anwendung koennte, insofern sie ueble Absichten verfolgt, von aussen als Proxy fuer den Zugriff auf deinen SQL Server benutzt werden. Somit waer die Sicherheit, die du ueber lokale Anmeldung erlangen willst, wieder ausgehebelt. ;)

Goos

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn du was gegen deine Paranoia tun willst, dann unterbinde doch einfach Internetzugriffe der Applikation.

Goos

Das wäre eine Möglichkeit. Jedoch ginge das nur bei gewissen Anwendungen. Bei meinem Mailserver beispielsweise wäre das Fatal :).

Die Anwendung koennte, insofern sie ueble Absichten verfolgt, von aussen als Proxy fuer den Zugriff auf deinen SQL Server benutzt werden. Somit waer die Sicherheit, die du ueber lokale Anmeldung erlangen willst, wieder ausgehebelt. ;)

Da hat du natürlich vollkommen Recht. Ich glaube auch das es keinen/keine 100% Schutz/Sicherheit gibt. Allerdings kann man es demjenigen wenigstens etwas schwerer machen :D.

Der Windows Firewall trau ich persönlich genausviel beziehungsweise genausowenig zu wie den anderen 3rd Party Firewalls, da ich schon Anwendungen gesehn habe die deren Mechanismen ausgehebelt haben. Sebstverständlich ist die Windows Firewall an und blockiert alles was nicht direkt von mir als Ausnahme definiert wurde.

In letzter Zeit tummeln sich vermehrt entweder nur einer oder mehrere (konnte ich noch nicht genau bestimmen) Leute um meinem Server. Täglich bis zu 300 Loginversuche auf meinem FTP, der inzwischen durch einen sftp Server ersetzt wurde und auch nicht auf dem Standartport läuft.

Zudem hat mich folgende Erkentnis erschreckt.

Ich habe einen Authentifizierungsserver für eine CMS System von mir entwickelt. Das CMS System ist nochnicht veröffentlicht. Nun habe ich für die Testcases des CMS Systems den Authentifizierungsserver auf meinem Root installiert und gestartet. Ich minmierte kurz das RPD Fenster um das CMS zu bearbeiten. Als ich ca 10 min später das Fenster wieder öffnete sprang der Authentifizierungsserver im Dreieck und meldete 30 Fehlgeschlagene Verbindungsversuchen :beagolisc.

lg

Gateway

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das heißt allein meine momentan laufende Instanz hat eine Arbeitsspeicher Auslastung von 3,5 GB RAM. Den Server den ich gemietet habe verfügt maximal über 4,5 GB RAM.

Ich könnte natürlich der Instanz einen Maximalen Wert für die Arbeitsspeichernutztung eintragen, jedoch würde das die Performance schmälern.

Selbst wenn es Leistungstechnisch ginge würde ich bestimmt nicht für jede 3rd Party Anwendung eine eigene Instanz aufsetzten. Das wäre ja Verwaltungstechnisch Selbstmord, mal ganz von dem Overhead abgesehn.

Bin gerade mal über diese Passage gestolpert :-) Der SQL Server pumpt was das Zeug hält den Arbeitsspeicher voll.

ABER...

er gibt ihn bei RAM-Anforderungen durch andere Prozesse auch "sofort" wieder frei.

So nutzt er nur den RAM, der eh nicht gebraucht wird. Die Speicher-Leak-Problematik gab es nur bis zur Version 7.0.

Von daher ist das für deine Datenbanken perfekt und für alle anderen Prozesse in keinerweise schädlich.

Viele Grüße,

Thomas

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...