Announcement

Collapse
No announcement yet.

SQL Server über Netzwerk

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQL Server über Netzwerk

    Hallo!

    Ich schreibe mir gerade ein Programm in C#! Laufen soll es folgendermaßen:

    Programm und Datenbank sollen auf dem Server liegen und auf dem Client wird dann nur eine Verknüpfung abgelegt.

    Zum Testen habe ich jetzt einfach mal auf meinem Rechner den SQL Server 2005 draufgepackt und lege mein Programm auf einem Netzlaufwerk ab. Starte ich nun von dort mein Programm bekomme ich immer folgende Fehlermeldung:

    "Die Anwendung hat einen Vorgang versucht, der von der Sicherheitsrichtlinie nicht zugelassen ist. Wenden Sie sich an den Systemadministrator, um der Anwendung die erforderliche Berechtigung zu gewähren, oder verwenden Sie "das Microsoft.NET Framework - Konfigurationstool.

    Wenn Sie auf "Weiter" klicken, ignoriert die Anwendung den Fehler und setzt den Vorgang fort. Wenn Sie auf "Beenden" klicken, wird die Anwendung sofort beendet.

    Fehler bei der Anforderung des Berechtigungstyps System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089."
    Ich habe am Sql Server einen neuen Benutzer angelegt und auch die Remoteverbindungen zugelassen.

    Mein ConnectionString sieht so aus:

    Code:
    "Server=meinRechnerName; Database=Datenbankname;User ID=***; Password=***;Trusted_Connection=yes";
    Habt ihr vielleicht ne Lösungsmöglichkeit?

    MfG
    Corey

  • #2
    Hallo Corey,

    das ist kein Problem vom SQL Server sondern von .NET.

    Die Standard-SecurityPolicy sieht halt so aus, das man .NET Applikationen nicht aus Netzlaufwerken starten darf.
    Leg es lokal ab und schon funktioniert es.

    Man kann es auch konfigurieren, das man es auch aus dem Netz starten darf; frag mal im .NET Forum nach.

    Olaf
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Danke

      Habe es jetzt hinbekommen. Da war wirklich etwas mit den Rechten.

      Eine Frage noch:

      Was muss beachtet werden....

      Wenn ich mir jetzt ein neues Projekt erstelle und dort eine SQL Express Datenbank hinzufüge und damit erstmal lokal arbeite, aber ich jetzt nun den "Release Ordner" auf den Server legen möchte, in der sich auch die Datenbank befindet und ich jetzt nur noch vom Client aus per Verknüpfung mit dem Programm nachher arbeiten möchte? Sprich, dass ich das Datenbankfile nicht im Management Studio ablegen oder erstellen muss, sondern dass das Datenbankfile in meinem Programmordner bleibt.

      Wie müsste denn der ConnectionString aussehen und muss ich auch wieder irgendwo die "Remoteverbindungen" einstellen?

      Danke nochmal!

      MfG
      Coery

      Comment


      • #4
        Hallo Corey,

        das habe ich jetzt nicht ganz verstanden, was Du vorhast.

        Der SQL Server wird auf den Server installiert und auf dem SQL Server dann eine Datenbank eingerichtet.
        Im Standard liegt die DB dann im Verzeichnis DATA vom SQL Server. Man kann die Datenbank auch in ein anderes Verzeichnis legen, man muss nur darauf achten, das der Account, unter dem der SQL Server läuft Rechte auf das Verzeichnis hat.
        Auf die DB greifst Du mit Deiner App über eine "Connection" zu (z.B. über ADO), dafür muss für den SQL Server Remoteverbindungen zugelassen sein; ist im Standard vom SQL 2005 nicht zugelassen.
        Also legst Du die DB nicht im Management Studio ab sondern hierüber an.

        Deine Applikation muss dann wissen, zu welchem Server / DB sie eine Connection öffnen soll; das wird über den Connection-String mit "Server" und "Database" angegeben.

        Olaf
        Olaf Helper

        <Blog> <Xing>
        * cogito ergo sum * errare humanum est * quote erat demonstrandum *
        Wenn ich denke, ist das ein Fehler und das beweise ich täglich

        Comment


        • #5
          Hi!

          Ich habe mich da wohl ein bißchen komisch ausgedrückt.

          Ich möchte oder eher es soll so sein, dass die Datenbank sich in meinem Programmordner befindet, also ich glaube das heißt "Embedded Datenbank", so dass man auf dem Server nichts installieren müsste, sondern nur den kompletten Programmordner auf den Server kopieren und danach dann halt nur noch die Verknüpfungen auf die Clients legen muss.

          Auf dem Server läuft nämlich Linux!

          MfG
          Corey

          Comment


          • #6
            Ok, eine Embedded DB.

            Nutzt Du nun den MS SQL Server 2005 Express Edition oder die Compact Edition?
            Bei der Compact Edition brauchst Du nur eine DLL, die Express Edition müsste lokal installiert werden.
            In beiden Fällen musst Du dann im Connection String den Ort+Namen der DB angeben.

            Olaf
            Olaf Helper

            <Blog> <Xing>
            * cogito ergo sum * errare humanum est * quote erat demonstrandum *
            Wenn ich denke, ist das ein Fehler und das beweise ich täglich

            Comment


            • #7
              Momentan benutze ich die Express Version, aber die Compact Edition würde mir ja dann eher zusagen.

              Läuft diese dann auch mit dem Visual Studio 2005. da ich nur die 3.5er Version zum Download gesehen habe und die läuft nur mit dem Visual Studio 2008, oder?

              MfG
              Corey

              Comment


              • #8
                Die 3.5 Version ist ne Beta, genau wie VS 2008.

                Die aktuelle Version:
                http://www.microsoft.com/downloads/d...DisplayLang=de
                Olaf Helper

                <Blog> <Xing>
                * cogito ergo sum * errare humanum est * quote erat demonstrandum *
                Wenn ich denke, ist das ein Fehler und das beweise ich täglich

                Comment


                • #9
                  Danke!

                  Diese Version erlaubt dann also auch den "Remote-Zugriff"? Ich kopier die ".dll's" in den Programmordner, lege diesen dann auf den Server und die Clients bekommen dann die Verknüpfung!

                  Oder fällt das unter Linux dann auch wieder flach, da ich das hier gelesen habe:

                  Für die Unterstützung der Mergereplikation und des Remotedatenzugriffs (Remote Data Access oder RDA) zur Synchronisierung von Desktopcomputer zu Desktopcomputer.


                  * SQL Server 2000 SP3a oder höher

                  * IIS Version 5.0 oder höher: Unterstützt von Windows Server 2003, Windows 2000 SP4 oder höheren Versionen und Windows XP. 120 MB verfügbarer Festplattenspeicher auf dem Server.

                  MfG
                  Corey

                  Comment


                  • #10
                    Das eigentliche Nutzen der DB aus Deiner App raus ist kein "Remote" Zugriff sondern nur ein File-Server Zugriff. Solange der Client auf das Verzeichnis zugreifen kann, funktioniert es, egal auf was für einem System die Dateien liegen. Du kannst es sogar auf einen USB Stick packen.

                    Was da beschrieben ist, ist die Replikation und dafür wird eine Remote-Zugriff auf den MS SQL Server benötigt, der dann aber auch als richtige Server -App läuft und nicht Embedded.


                    Da kam auch das Stichwort, auf das ich gewartet habe und auch schon fragen wollte: Clients
                    Eine Embedded DB wird exklusive geöffnet und kann somit nur von einem Client zur gleichen Zeit genutzt werden.
                    Als ich würde bei der Entwicklung bedenken, das vielleicht doch mehr als einer damit arbeiten will => SQL Server

                    Olaf
                    Olaf Helper

                    <Blog> <Xing>
                    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
                    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

                    Comment

                    Working...
                    X