Announcement

Collapse
No announcement yet.

Dem DBO die kompletten Rechte meiner DB entziehen.

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

  • Dem DBO die kompletten Rechte meiner DB entziehen.

    Hallo zusammen,

    wie kann ich (natürlich als Admin mit allen Rechten) dem "dbo" sämtliche Rechte an meiner Datenbank entziehen.
    Die Datenbank selber darf sichtbar bleiben, aber der komplette Inhalt, alle Tabellen, alle Prozeduren sollen unsichtbar sein und natürlich auch nicht mit SQL-Befehlen abrufber sein.

    Folgendes habe ich schon gemacht.
    Ein User (nennen wir ihn "User") ist angelegt. Unter gleichem Namen auch das Schema "User". In dem Schema existieren Tabellen und Prozeduren.
    Neue Benutzer sehen die daten nicht, aber der dbo.

    Der Grund ist ganz einfach.
    Ich möchte eine Tabellenstruktur inkl. der Daten für den späteren Systemadministrator komplett unsichtbar machen. Er darf nur die Datenbank komplett sichern und wiederherstellen.


    Falls dies nicht komplett möglich ist, dann wäre das Sichern der Tabelleninhalte wenigstens ein Teilerfolg. Also der dbo sieht zwar die Tabellen, kann aber nicht darauf zugreifen.

    Danke
    Thomas K.

  • #2
    Gibts den beim MS SQL2005 nicht ein art Verschlüsselung die für sowas geeignet wäre?

    Comment


    • #3
      Für die Daten selber schon (glaube ich).
      Gedacht hatte ich aber eher an so etwas wie "deny xxx to dbo".
      Aber das geht ja nicht.
      Gibt es das nicht häufiger, das der Netzwerk-/Datenbank-/oder sonst was-Administrator daten nicht sehen darf??

      Nur ich als Ersteller (owner) möchte die Rechte vergeben. Ich darf (oder will) aber keine Rechte auf das komplette Datenbanksystem, da dort noch viele andere fremde Daten liegen. Meine sollen aber komplett geschützt sein.

      Thomas

      Comment


      • #4
        Hallo,

        Ich möchte eine Tabellenstruktur inkl. der Daten für den späteren Systemadministrator komplett unsichtbar machen.
        das würde sowohl dem SQL-Standard als auch den Anforderungen an eine SQL-Datenbank im Punkt der Datensicherheit (im Sinne von "Verfügbarkeit" der Daten) zuwiderlaufen. Der Administrator des Servers hat in jedem Fall die volle Kontrolle (denn er wird später ja auch für den reibungslosen Betrieb verantwortlich gemacht).

        ..der Daten für den späteren Systemadministrator komplett unsichtbar machen...
        Dazu müssen a) die Daten verschlüsselt werden, wobei b) auch der Schlüssel nicht in der Datenbank bzw. auf dem Server abgelegt werden darf.

        P.S: Man könnte zwar die Datenstruktur in verschlüsselten XML-Daten verstecken, aber das hat dann nichts mehr mit einer relationalen Datenbank zu tun.

        Comment


        • #5
          Also, ich habe zwei gute Gründe dafür. (2 Beispiele)

          1.)
          Ein einfacher Angestellter System-/Netzwerk-/Datenbankadministrator sollte (denke ich) nicht den Inhalt der Gehaltstabellen des Vorstandes sehen.

          2.)
          Ich als Datenbank- und Softwareentwickler habe eine Tabellenstruktur (natürlich mit logisch aufgebauten Namen) entwickelt und muss diese bei einem Kunden auf seinem vorhandenem Datenbanksystem installieren. Dort läuft aber auch eine Software von einem Konkurenzunternehmen. Dieses sollte noch nicht einmal die Information haben, welche Tabellen bei mir installiert sind.

          ____

          Oder gibt es hierfür ganz andere Technologien???
          Ich beschäftige mich erst seit kurzem mit MS-SQL. Habe vorher fast nur Oracle gemacht. (Da war das übrigens überhaupt kein Thema.)

          Gruß und Danke
          Thomas K.

          Comment


          • #6
            Hallo,

            ein einfacher Angestellter System-/Netzwerk-/Datenbankadministrator sollte (denke ich) nicht den Inhalt der Gehaltstabellen des Vorstandes sehen
            ein Administrator ist nicht ein "einfacher" Angestellter, sondern immer eine spezielle Vertrauensperson. Ein Administrator des Active Directory kann alle Dateien einsehen, die im Firmennetzwerk erreichbar sind. Wenn ein Datum verschlüsselt gespeichert wird, kann der Administrator die Daten zwar "sehen", aber nicht nutzen.

            Dort läuft aber auch eine Software von einem Konkurenzunternehmen. Dieses sollte noch nicht einmal die Information haben, welche Tabellen bei mir installiert sind.
            Dieses Problem verschwindet, wenn ausschließlich der interne Administrator den Zugriff auf den SQL Server hat. Alle Installationen führt ausschließlich der interne Administrator aus, indem er die bereitgestellte Installationsanleitung abarbeitet. In diesem Fall sieht das Konkurenzunternehmen keine andere Datenbank.

            Oder gibt es hierfür ganz andere Technologien???
            Eine SQL-Datenbank muss die von E.F. Codd aufgestellten „Zwölf Gebote“ einer relationalen Datenbank einhalten. Eine Regel bezieht sich auf den Datenbank-Katalog, der über SQL abrufbar sein muss. Auch aus diesem Grund sollten sich alle SQL-Server in diesem Punkt gleich verhalten.

            Comment


            • #7
              Ok, vielen Dank für die vielen Infos.

              Ich werde mal stark nachdenken wie ich jetzt am besten vorgehe. (Da der Netzwerkadmin ein guten Kumpel der Konkurenzfirma ist.)
              Da es aber eine kleine Firma ist und ich die Erstinstallation vornehme, kann ich es evtl. schaffen das sa-Kennwort nich rauszugeben, sondern stattdessen einen sa-ähnlichen User.

              Comment


              • #8
                Hallo,

                ...das sa-Kennwort nich rauszugeben, sondern stattdessen einen sa-ähnlichen User.
                wenn der Admin clever ist, kann er die Datenbank- und Log-Datei auf einen beliebigen anderen Rechner kopieren und dort in die SQL Server-Instanz einhängen. Außerdem greift immer noch die Windows-Authenfizierung, wenn der Admin in der Gruppe der Administratoren des Active Directory ist. Es reicht daher nicht aus, den sa-Einstieg abzuschotten.

                Comment

                Working...
                X