Sicherheits- und Zugriffsrechte für Registrierungsschlüssel
Mit dem Windows-Sicherheitsmodell können Sie den Zugriff auf Registrierungsschlüssel steuern. Weitere Informationen zur Sicherheit finden Sie unter Access-Control Model.
Sie können einen Sicherheitsdeskriptor für einen Registrierungsschlüssel angeben, wenn Sie die RegCreateKeyEx - oder RegSetKeySecurity-Funktion aufrufen. Wenn Sie NULL angeben, ruft der Schlüssel einen Standardsicherheitsdeskriptor ab. Die ACLs in einem Standardsicherheitsdeskriptor für einen Schlüssel werden von seinem direkten übergeordneten Schlüssel geerbt.
Um den Sicherheitsdeskriptor eines Registrierungsschlüssels abzurufen, rufen Sie die Funktionen RegGetKeySecurity, GetNamedSecurityInfo oder GetSecurityInfo auf.
Zu den gültigen Zugriffsrechten für Registrierungsschlüssel gehören delete, READ_CONTROL, WRITE_DAC und WRITE_OWNER Standardzugriffsrechte. Registrierungsschlüssel unterstützen das Standardzugriffsrecht SYNCHRONIZE nicht.
In der folgenden Tabelle sind die spezifischen Zugriffsrechte für Registrierungsschlüsselobjekte aufgeführt.
Wert | Bedeutung |
---|---|
KEY_ALL_ACCESS (0xF003F) |
Kombiniert die Zugriffsrechte STANDARD_RIGHTS_REQUIRED, KEY_QUERY_VALUE, KEY_SET_VALUE, KEY_CREATE_SUB_KEY, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY und KEY_CREATE_LINK. |
KEY_CREATE_LINK (0x0020) |
Ist für das System reserviert. |
KEY_CREATE_SUB_KEY (0x0004) |
Erforderlich, um einen Unterschlüssel eines Registrierungsschlüssels zu erstellen. |
KEY_ENUMERATE_SUB_KEYS (0x0008) |
Erforderlich zum Aufzählen der Unterschlüssel eines Registrierungsschlüssels. |
KEY_EXECUTE (0x20019) |
Entspricht KEY_READ. |
KEY_NOTIFY (0x0010) |
Erforderlich, um Änderungsbenachrichtigungen für einen Registrierungsschlüssel oder für Unterschlüssel eines Registrierungsschlüssels anzufordern. |
KEY_QUERY_VALUE (0x0001) |
Erforderlich, um die Werte eines Registrierungsschlüssels abzufragen. |
KEY_READ (0x20019) |
Kombiniert die Werte STANDARD_RIGHTS_READ, KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS und KEY_NOTIFY. |
KEY_SET_VALUE (0x0002) |
Erforderlich zum Erstellen, Löschen oder Festlegen eines Registrierungswerts. |
KEY_WOW64_32KEY (0x0200) |
Gibt an, dass eine Anwendung unter 64-Bit-Windows mit der 32-Bit-Registrierungsansicht arbeiten soll. Dieses Flag wird von 32-Bit-Windows ignoriert. Weitere Informationen finden Sie unter Zugreifen auf eine alternative Registrierungsansicht. Dieses Flag muss mithilfe des OR-Operators mit den anderen Flags in dieser Tabelle kombiniert werden, die entweder Registrierungswerte abfragen oder darauf zugreifen. Windows 2000: Dieses Flag wird nicht unterstützt. |
KEY_WOW64_64KEY (0x0100) |
Gibt an, dass eine Anwendung unter 64-Bit-Windows mit der 64-Bit-Registrierungsansicht arbeiten soll. Dieses Flag wird von 32-Bit-Windows ignoriert. Weitere Informationen finden Sie unter Zugreifen auf eine alternative Registrierungsansicht. Dieses Flag muss mithilfe des OR-Operators mit den anderen Flags in dieser Tabelle kombiniert werden, die entweder Registrierungswerte abfragen oder darauf zugreifen. Windows 2000: Dieses Flag wird nicht unterstützt. |
KEY_WRITE (0x20006) |
Kombiniert die Zugriffsrechte STANDARD_RIGHTS_WRITE, KEY_SET_VALUE und KEY_CREATE_SUB_KEY. |
Wenn Sie die RegOpenKeyEx-Funktion aufrufen, überprüft das System die angeforderten Zugriffsrechte mit dem Sicherheitsdeskriptor des Schlüssels. Wenn der Benutzer nicht über den richtigen Zugriff auf den Registrierungsschlüssel verfügt, tritt beim Öffnen ein Fehler auf. Wenn ein Administrator Zugriff auf den Schlüssel benötigt, besteht die Lösung darin, die berechtigung SE_TAKE_OWNERSHIP_NAME zu aktivieren und den Registrierungsschlüssel mit WRITE_OWNER Zugriff zu öffnen. Weitere Informationen finden Sie unter Aktivieren und Deaktivieren von Berechtigungen.
Sie können das ACCESS_SYSTEM_SECURITY Zugriffsrecht auf einen Registrierungsschlüssel anfordern, wenn Sie die Systemzugriffssteuerungsliste (SACL) des Schlüssels lesen oder schreiben möchten. Weitere Informationen finden Sie unter Zugriffssteuerungslisten (Access-Control Lists, ACLs) und SACL-Zugriffsberechtigung.
Verwenden Sie den Registrierungs-Editor (Regedt32.exe), um die aktuellen Zugriffsrechte für einen Schlüssel anzuzeigen, einschließlich der vordefinierten Schlüssel. Nachdem Sie zur gewünschten Taste navigiert haben, wechseln Sie zum Menü Bearbeiten, und wählen Sie Berechtigungen aus.