Announcement

Collapse
No announcement yet.

systemdatenbanken für benutzer ausblenden?

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

  • systemdatenbanken für benutzer ausblenden?

    hallo,

    ich bin neu im sql server und habe gerade eine ms access-db zu einer sql server-datenbank (2005 express edition) migriert.
    diese sql server-db möchte ich über einen browser (und somit übers internet) manipulieren können, darum habe ich auf den wk3 server noch das web data administrator-tool raufgespielt.

    soweit funktioniert alles gut. nun möchte ich aber meine 'sensiblen' daten ein wenig absichern. dazu habe ich in windows einen neuen benutzer 'sqlservertest' angelegt der mitglied der 'benutzer' ist. mit hilfe des sql-server management studios habe ich nun unter sicherheit/anmeldungen eben diesen user hinzugefügt, meiner db zugeordnet und das standard-schema: db_owner zugewiesen.

    melde ich mich nun im web data administrator an so bekomme ich auch immer die systemdatenbanken zu gesicht und könnte diese auch manipulieren.

    wie schaffe ich es einen benutzer anzulegen der nur berechtigungen besitzt innerhalb 'seiner' datenbank tabellen anzulegen, löschen und die gängigen datenmanipulationen (select, insert...) durchzuführen?

    ist es ausserdem möglich dem sql server 2005 (express edition) eine ssl-verbindung aufzuzwingen?

    hab schon in mehreren ebooks gestöbert, werde aber nicht richtig schlau was mein vorhaben betrifft...bin für jeden tipp dankbar!

  • #2
    Hallo,
    ich kenne das Tool "web data administrator" nicht, aber meldet sich das Tool/der Benutzer auch als 'sqlservertest' an?
    Gruß
    Thomas Rith

    Comment


    • #3
      Hallo Rookie,

      der SQL Server hat ein sehr umfangreiches Berechtigungssystem, man Rechte runter bis zu Spalten definieren; falls man Lust hat, sich zu Tode zu administrieren.

      der mitglied der 'benutzer' ist
      "Benutzer" ist jedenfalls keine Standard Rolle o-ä. vom SQL Server.
      Wie sind den die Rechte eingerichtet?

      so bekomme ich auch immer die systemdatenbanken zu gesicht
      Das ist immer so und doch eigentlich auch nicht schlimm.
      und könnte diese auch manipulieren
      Nur wenn der User Rechte dazu hat, sonst nicht.

      Die beste Nachschlagequelle ist immer die Online-Hilfe vom SQL Server, die ist sehr umfangreich und für meinen Geschmack auch ausgesprochen gut.
      Sieh dort mal unter dem Stichpunkt "Sicherheit [SQL Server]" nach.
      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


      • #4
        hallo olaf,

        danke für die hinweise. ganz komme ich noch nicht zurecht. also wie gesagt hab ih den 'sqlservertest' user im windows os angelegt und dann zusätzlich im sqlserver unter sicherheit/anmeldungen einen neuen login für diesen user geschaffen. diesem eine standard-datenbank zugewiesen, die serverrolle public und dbcreator zugewiesen.
        unter benutzerzuordnung habe ich dann noch einmal die standard-db zugewiesen und das schema:db_owner.

        wie kann ich mir denn eine solche spezielle serverrolle kreieren, die nur meine gewünschte rechte dem user zuordner soll? es ist mir auch nicht möglich beim erstellen der neuen anmeldung das gast-konto für master zu deaktivieren (hat auch wahrscheinlich keinen sinn)?

        lg,
        stefan.

        Comment


        • #5
          Hallo Stefan,

          im SQL Server gibt es
          - Serverrollen; die Berechtigungen gelten eben Server (Instanzen)-weit und können nicht um eigene erweitert werden.
          - Datenbankrollen; die Berechtigungen gelten nur für die jeweilige DB, diese können auch um eigene Rollen erweitert werden, denen man dann die gewünschte Rechte gibt

          Beispiel

          [highlight=SQL]USE master
          GO
          -- Win NT User Zugriff einrichten
          EXEC master.dbo.sp_grantlogin @loginame = N'DOMAIN\username'
          -- Default DB setzen
          EXEC master.dbo.sp_defaultdb @loginame = N'DOMAIN\username', @defdb = N'Northwind'
          GO

          -- Nun zur eigenen Datenbank wechseln
          USE Northwind
          GO
          -- Userrolle anlegen
          EXEC dbo.sp_addrole @rolename = N'UserRolle'
          GO
          -- Alle Rechte auf Tabelle "Customer" vergeben
          GRANT ALL ON dbo.Customers TO UserRolle
          GO
          -- User Zugriff auf DB gewähren und DBUsername vergeben
          EXEC dbo.sp_grantdbaccess @loginame = N'DOMAIN\username', @name_in_db = N'DBUserName'
          GO
          -- User der UserRolle zuordnen; wichtig: Geht über den DBUsername
          EXEC sp_addrolemember N'UserRolle', N'DBUserName'
          -- und der Standard-DB Rolle db_datareader
          EXEC sp_addrolemember N'db_datareader', N'DBUserName'
          GO[/highlight]

          Ergebnis:
          Der Win-NT User wurde angelegt, hat Zugriff auf die eine DB erhalten und darf dort über die Rollenberechtigungen
          - alle Tabellen/Views selektieren (Lesen) [über die Standard-Rolle "db_datareader"]
          - In der Tabelle "Customer" auch schreiben oder löschen [über die Benutzerrolle "UserRole"]

          Den Gast-Account sollte man aus Sicherheitsgründen wirklich deaktivieren, weil sich sonst wirklich jeder mit seinem Win-NT Account anmelden kann. In den MS DemoDBs wie "Northwind" oder "AdventureWorks" ist es aktiv, damit man damit ohne Sicherheits-Einrichtung damit arbeiten kann.

          Am besten löschen

          [highlight=SQL]USE Northwind
          GO
          EXEC dbo.sp_revokedbaccess N'guest'
          GO[/highlight]
          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


          • #6
            hallo olaf,

            super, spitze, danke!!!

            vielen dank für die hilfe!

            Comment

            Working...
            X