none
Berechtigungen "Sie verfügen nicht über die Berechtigungen, diese Datei zu öffnen"

    Frage

  • Schönen guten Morgen,

     

    ich habe bei mir SqlServer 2008R2 und Visual C# Express installiert.

    Und möchte nun in C# eine SQL-Datenbank einbinden. Aber egal ob ich schon ältere Datenbanken nehme oder eine neue erstelle immer bekomme ich folgende Fehlermeldung "Sie verfügen nicht über die Berechtigungen, diese Datei zu öffnen".

    Ich dachte es liegt an den Berechtigungen des Servers aber wenn ich diese über die Eigenschaften bearbeiten will und für meinen Nutzeraccount die Berechtigung "Verbinden" auswähle, ist diese beim erneuten nachschauen immer wieder abgewählt.

     

    Weiß jemand wie ich die Berechtigungen für meine Datenbanken bekomme?

     

    Danke schon im voraus.

     

    Fietje

     

     

     

    Freitag, 29. April 2011 07:53

Antworten

  • Hallo Fietje,

    da die Meldung "diese Datei öffnen" lautet und nicht "Datenbank", hat es zunächst nichts mit den Berechtigungen im SQL Server selbst zu tun, sondern auf Dateienebene. Wenn man in der VS C# Express Edition eine Datenbankverbindung per Wizard erstellt, wird diese dann als Benutzerinstanz ausgeführt. Dazu benötigt der SQL Server Dienst Zugriffsrechte auf die erstellte Datenbank-Datei und wenn die z.B. in Deinem Benutzerprofil liegt, fehlen die Rechte.

    Entweder musst Du die Datei dort ablegen, wo der Dienst zugreifen kann oder Du legst die Datenbank über SSMS im Datenverzeichnis des MS SQL an, dann musst Du den ConnectionString entsprechend abändern.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Freitag, 29. April 2011 08:31
  • Hallo Fietje,

    in der Systemsteuerung => Verwaltung => Dienste (services.msc), dort wirst Du einen Dienst namens "SQL Server (SQLEXPRESS)" finden, in den Eigenschaften steht das Dienstkonto; in der Regel ist es "LocalSystem" und das Konto braucht dann die Rechte. Du könntest das Konto auch auf Deinen Account ändern.

    Oder Du lässt alles so und legst wie erwähnt eine Datenbank über SSMS an.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Freitag, 29. April 2011 08:57
  • Wie gesagt, das ist auf FileSystem Ebene. Windows Explorer öffnen, Ordner raussuchen, Rechte-Maus auf den Ordner => Eigenschaften, Kartenreiter "Sicherheit".

    Ich kann aber nur raten, die Datenbank über SSMS im Datenverzeichnis anzulegen; UserInstances sind abgekündigt und werden irgendwann mal nicht mehr unterstützt und so wirklich einfacher machen sie es auch nicht.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Samstag, 30. April 2011 06:56

Alle Antworten

  • Hallo Fietje,

    da die Meldung "diese Datei öffnen" lautet und nicht "Datenbank", hat es zunächst nichts mit den Berechtigungen im SQL Server selbst zu tun, sondern auf Dateienebene. Wenn man in der VS C# Express Edition eine Datenbankverbindung per Wizard erstellt, wird diese dann als Benutzerinstanz ausgeführt. Dazu benötigt der SQL Server Dienst Zugriffsrechte auf die erstellte Datenbank-Datei und wenn die z.B. in Deinem Benutzerprofil liegt, fehlen die Rechte.

    Entweder musst Du die Datei dort ablegen, wo der Dienst zugreifen kann oder Du legst die Datenbank über SSMS im Datenverzeichnis des MS SQL an, dann musst Du den ConnectionString entsprechend abändern.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Freitag, 29. April 2011 08:31
  • Hallo Olaf,

     

    danke für die schnelle antwort.


    Wo kann ich sehen welche Zugriffsrechte der SQL Server Dienst hat?

     

    Fietje

     

     

    Freitag, 29. April 2011 08:46
  • Hallo Fietje,

    in der Systemsteuerung => Verwaltung => Dienste (services.msc), dort wirst Du einen Dienst namens "SQL Server (SQLEXPRESS)" finden, in den Eigenschaften steht das Dienstkonto; in der Regel ist es "LocalSystem" und das Konto braucht dann die Rechte. Du könntest das Konto auch auf Deinen Account ändern.

    Oder Du lässt alles so und legst wie erwähnt eine Datenbank über SSMS an.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Freitag, 29. April 2011 08:57
  • Hallo Olaf,

     

    bis zum LocalSystem bin ich gekommen. Ich finde aber leider nicht wie ich dem konto bestimmte Rechte zuweisen kann.

     

    Fietje

    Freitag, 29. April 2011 09:18
  • Wie gesagt, das ist auf FileSystem Ebene. Windows Explorer öffnen, Ordner raussuchen, Rechte-Maus auf den Ordner => Eigenschaften, Kartenreiter "Sicherheit".

    Ich kann aber nur raten, die Datenbank über SSMS im Datenverzeichnis anzulegen; UserInstances sind abgekündigt und werden irgendwann mal nicht mehr unterstützt und so wirklich einfacher machen sie es auch nicht.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Samstag, 30. April 2011 06:56