MS SQL-Server, Fehlermeldung bei Wiederherstellen eines Backups

5118: Die Datei XY ist komprimiert, befindet sich aber nicht in einer schreibgeschützten Datenbank oder Dateigruppe. Die Datei muss dekomprimiert werden.

Ursache hierfür ist, dass der Ordner/das Laufwerk auf der das Backup wiederhergestellt werden soll, in Windows als „komprimiert“ markiert ist.

Kategorien:Uncategorized Schlagwörter:

Sicherheit in .NET mit CAS („Code Access Security“)

Mit dem .NET Framework haben Sie die Möglichkeit, analog zu den Windows Benutzerrechten, für .NET basierende Anwendungen Zugriffsrechte zu vergeben. Diese Funktion nennt sich CAS („Code Access Security“). Im Service Pack 1 für das  .NET Framework 3.5 wurden die Standard Sicherheitsbeschränkungen für Anwendungen im lokalen Intranet, die über eine Netzwerkfreigabe geöffnet werden, etwas gelockert. Diese werden nun als voll vertrauenwürdig Behandelt („fully trusted“). Seit dem .NET Framework 4.0 werden ungehostete Anwendungen im Standard nicht mit CAS verwaltet. Trotzdem lohnt es sich einen Blick auf die verwaltete Sicherheit für Assemblies, da zu einem noch sehr viele Anwendungen für die älteren .NET Versionen geschrieben werden und zum Anderen immer noch einige Funktionen von CAS auch in der Version 4.0 des .NET Frameworks Verwendung finden. Entscheidungen zu den Sicherheitsrichtlinien werden allerdings nun von der Hostanwendung getroffen.

Ein Problem mit CAS in der ursprünglichen Funktionsweise war sicherlich, dass es nur auf Anwendungen, die mit verwalteten .NET Code geschrieben wurden, angewendetet werden konnte. Um bösartige Software einzuschleusen brauchte ein Anwender also nur eine mit unverwalteten Code (unmanaged) einzuschleusen.

Wie funktioniert „Code Access Security“ in den .NET Versionen vor der Version 4.0?

CAS ist unabhängig von der „normalen“ Rechtevergabe des Betriebssystems. Es ist nicht möglich, einem Programm mit CAS mehr Rechte zu gewähren als die Sicherheitseinstellungen der aktuellen Benutzerrolle im Windows zulassen. Als Regel kann man festhalten, dass sich immer die Einstellung mit der größeren Einschränkung durchsetzt. Wenn also der aktuell angemeldetete Benutzer das Recht hat in das Verzeichniss C:\XY zu schreiben, allerdings die Anwendung mit CAS beschränkt wird, so kann diese nicht in das Verzeichniss schreiben. Hat hingeben der Benutzer kein recht z.B. auf D:\ zu schreiben, so kann die Anwendung noch so sehr den Zugriff auf D:\ erlauben, sie wird sich nicht durchsetzten können, da die restriktivere Einstellung gewinnt.

Wie werden Anwendungen durch CAS identifiziert?

Assemblies werden von CAS anhand einer Reihe von Merkmalen identifiziert. Da es hier nicht um die Rechte von Personen, sondern von Anwendungen geht, können  einfache Merkmale wie Benutzername und Passwort natürlich nicht  verwendet werden. Die Identifikationsmerkmale werden in der englischsprachigen Fachliteratur „evidence“ (Beweise) genannt. Die folgenden Merkmale finden Verwendung um eine Assembly zu identfizieren:

Signatur des Herstellers, Versionsspezifischer Hash-Code, Starker Name der signierten Assembly, Verzeichniss der Anwendung, Webseite und URL der Anwendung und die sogenante „Zone“ (z.B. die  Internet Zone).

Konfiguration der Sicherheitseinstellungen

Sie können CAS für das .NET Framework 2.0 aufrufen, indem Sie in der Systemsteuerung von Windows unter Verwaltung folgenden Menüpunkt aufrufen:

.NET Framework 2.0 Configuration

Es erscheint folgendes Konfigurationsfenster:
.NET 2.0 Konfigurationsfenster

Die Laufzeitsicherheitsrichtlinien („Runtime Security Policies“)

Es gibt vier Laufzeitsicherheitsrichtlinien: Anwendungsdomäne („Application domain“), Benutzer („User“), Computer („Maschine“) und  Organisation („Enterprise“). In jeder dieser Sicherheitsrichtlinen können einzelnde Rechte und Codegruppen festgelegt werden.

Die höchstrangige Laufzeitsicherheitsrichtline ist die „Organisation“. Diese beschreibt Sicherheitseinstellungen für ein ganzes Unternehmen auf Basis des „Active Directory“ Verzeichnissdienstes. „Computer“  beeinflusst allen Code, der im Betriebssystem ausgeführt wird. Die Richtline „Benutzer“ bezieht sich auf den aktuell angemeldeten Benutzer des Systems und  vertraut als Standard-Einstellung allen Anwendungen.

Es gilt immer die Sicherheitseinstellung mit dem höchsten Maß an Einschränkungen. Sollte ein Benutzer also eine Anwendung auf Benutzerebene etwa im Registry-Zugriff einschränken, greift die Sperrung, egal was die Organisations-Richtline festlegt. Sollte im Gegenzug die Organistationsrichtline einer Anwendung den Internetzugriff entziehen, so ist es dem Benutzer nicht möglich, durch Änderungen seiner Benutzerrichtline der Anwendung wieder Internetzugriff zu ermöglichen.

Die Laufzeitsicherheitsrichtlinen sind in Codegruppen unterteilt. Diese sind Sammlungen der Rechte einer Anwendung. Eine Assembly kann Mitglied meherer Codegruppen sein.

Fortsetzung folgt…