Gateway_man Geschrieben 10. September 2011 Geschrieben 10. September 2011 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 Zitieren
streffin Geschrieben 10. September 2011 Geschrieben 10. September 2011 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 Zitieren
Gateway_man Geschrieben 11. September 2011 Autor Geschrieben 11. September 2011 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 Zitieren
SilentDemise Geschrieben 11. September 2011 Geschrieben 11. September 2011 ich versteh nur den anwendungsfall nicht ;-) Zitieren
Gateway_man Geschrieben 11. September 2011 Autor Geschrieben 11. September 2011 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 Zitieren
streffin Geschrieben 11. September 2011 Geschrieben 11. September 2011 Ja, es gibt schon ein paar Kleinigkeiten die man bis heute vermisst... Aber auf Merge Into und row_number() möcht ich auch nicht verzichten Zitieren
Pixie Geschrieben 12. September 2011 Geschrieben 12. September 2011 In was programmierst Du die Anwendung? Wenn in .NET, könntest Du über die SMO gehen. Zitieren
Gateway_man Geschrieben 12. September 2011 Autor Geschrieben 12. September 2011 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 . lg Gateway Zitieren
Pixie Geschrieben 12. September 2011 Geschrieben 12. September 2011 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. Zitieren
Gateway_man Geschrieben 12. September 2011 Autor Geschrieben 12. September 2011 (bearbeitet) 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 12. September 2011 von Gateway_man Zitieren
Goos Geschrieben 12. September 2011 Geschrieben 12. September 2011 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 Zitieren
Gateway_man Geschrieben 12. September 2011 Autor Geschrieben 12. September 2011 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 . 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 Zitieren
Goos Geschrieben 12. September 2011 Geschrieben 12. September 2011 Na gut. Wenn es dich beruhigt, dann kannst nen Logon Trigger implementieren und dabei den Hostname abfragen. Sowas gabs wenn ichs richtig im Kopf hab auch schon bei der 2005er Version. Goos Zitieren
.NETter Geschrieben 14. September 2011 Geschrieben 14. September 2011 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 Zitieren
Empfohlene Beiträge
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.