none
SQL Server 2008 Standard: Tabellen werden nicht angezeigt RRS feed

  • Allgemeine Diskussion

  • Hallo,

    wir haben den SQL Server 2008 Standard im Einsatz und er läuft mit unserer MES Anwendung bisher ohne Probleme. Aktuell auf Kumulatives Updatepaket 10 gepatched.

    Nun wollten wir für die Entwicklungsabteilung einen SQL Server Zugang einrichten, der rein lesend die Tabellen anzeigt. Deshalb habe ich unter "Anmeldungen" ein bestehendes AD-Konto also Windows-Authentification erstellt. Dem Konto die Serverrolle "public" und die Datenbankrolle "db_datareader" zugewiesen und mit der Datenbank verknüpft. Soweit so gut. Die Anmeldung funktioniert, die Datenbank lässt sich auswählen, jedoch wird unter "Tabellen" nichts angezeigt.

    Füge ich den Nutzer in die Serverrolle "sysadmin" oder in die Datenbankrolle "db_owner" funktioniert dies ohne Probleme. Kann mir jemand sagen wo das Problem liegen könnte? So wie ich es gelesen hatte ist db_datareader der komplette lesende Zugriff auf die Datenbank gestattet.

    Eventluell könnte wichtig sein, das die Datenbank ein anderes Schema verwendet. Ich hatte auch schon versucht das Standardschema des SQL-Benutzers zu ändern, jedoch ohne Erfolg. Es lies sich ändern aber die Tabellen wurden weiterhin nicht angzeigt.

    Gruß

    Mittwoch, 6. April 2011 18:37

Alle Antworten

  • Soweit so gut. Die Anmeldung funktioniert, die Datenbank lässt sich auswählen, jedoch wird unter "Tabellen" nichts angezeigt.

    Hallo,

    Wo / In welchem Tool werden die Tabellen nicht anzeigt?

    Wenn es um das SSMS geht, das ruft die Tabellen über sys.tables ab und wie man dort in weiterführenden Links lesen kann, sind dafür Berechtigungen auf die Metadaten nötig, siehe MSDN Konfigurieren der Sichtbarkeit von Metadaten.

    Das SSMS ist nicht unbedingt für den Otto-Normal-User geeignet und was man erst recht nicht erwarten darf ist, das er alles sieht & kann wie ein SysAdmin; dafür gibt es ja nun das Berechtigungskonzept im SQL Server.


    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
    Mittwoch, 6. April 2011 19:27
  • Hallo,

    danke für die Antwort. Ja genau meinte das SSMS. Also so wie ich das verstehe müsste auf die Datenbank die Berchtigung "VIEW DEFINITION" erteilt werden!?

    Ok merke schon das ist wie du schon sagst nicht das richtige Tool für den Zweck. Also vielleicht sollte ich mal weiter ausholen. Sinn und Zweck sollte es sein den Tabellenaufbau und die Beziehungen zwischen diesen zu ermitteln, um eigene Abfragen in unser ERP System zu übermitteln. Deshalb müsste ich dem Entwickler einen Zugriff darauf geben. Im Augenblick geht es primär erstmal drauf sich einen Überlick zu verschaffen. Schulungen von dem MES Unternehmen über den Datenbankaufbau wird es später per Schulung geben.

    Wenn du eine bessere Idee hast nur zu. Bin da recht flexibel.

    Gruß

    Mittwoch, 6. April 2011 20:42
  • Für Entwickler ist SSMS schon geeignet, da er darüber alle benötigten Informationen bekommen kann; nur nicht so unbedingt für Endanwender, die Adhoc Abfragen für Auswertungen o.ä. erstellen, wie ich zunächst vermutet hatte.

    In so einem Falle würde ich eher ein Testdatenbank (Kopie der Produktion) erstellen und das am besten auch auf einem Test-System, für den Fall das fehlerhafte Abfragen erstellt werden, die dann Last-mäßig den Server an Grund ziehen.

    Dann hängt es auch von Euren Policies ab. Sind in der Datenbank Daten enthalten, die der Entwickler nicht sehen darf, z.B. Personaldaten (HR)?

    Wenn er alles einsehen darf, könntest Du ihn in der Test DB in die db_dlladmin Rolle stecken oder sogar in die db_owner, dann kann er dort alles machen, auch Views / Stored Procedures erstellen. Löscht er mal "versehentlich" was, ziehst Du ihm die Ohren lang, erstellst eine neue Kopie und gut.

    Andernfalls kommst Du nicht umhin, entsprechende dedizierte Rechte zu vergeben.


    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
    Donnerstag, 7. April 2011 06:46
  • Die Anmeldung funktioniert, die Datenbank lässt sich auswählen, jedoch wird unter "Tabellen" nichts angezeigt.

    Füge ich den Nutzer in die Serverrolle "sysadmin" oder in die Datenbankrolle "db_owner" funktioniert dies ohne Probleme. Kann mir jemand sagen wo das Problem liegen könnte? So wie ich es gelesen hatte ist db_datareader der komplette lesende Zugriff auf die Datenbank gestattet.

    Hallo,

     

    das klingt stark nach einem DENY auf der Datenbank.

    Da würde ich mir mal die Datenbank-Rolle PUBLIC ansehen.

    Gruß,

    Andreas


    SQL Server & BI blog - Homepage

    Sonntag, 10. April 2011 08:02