Ustawianie zabezpieczeń podczas tworzenia przestrzeni nazw
Plik Formatu obiektów zarządzanych (MOF), który tworzy przestrzeń nazw, może również zdefiniować deskryptory zabezpieczeń przestrzeni nazw, uwzględniając przestrzeni nazwSecuritySDDL kwalifikator z deskryptorem zabezpieczeń w języka definicji deskryptora zabezpieczeń (SDDL) format.
Aby zabezpieczyć dowolną przestrzeń nazw, możesz użyć NamespaceSecuritySDDL. Możesz również użyć tego kwalifikatora w prostym pliku MOF, aby zmienić deskryptor zabezpieczeń w istniejącej przestrzeni nazw. Ciąg SDDL jest przetwarzany przez usługę WMI w celu ustanowienia zabezpieczeń przestrzeni nazw, ale nie jest przechowywany jako ciąg. Jeśli nie określono deskryptora zabezpieczeń, zostanie użyte domyślne zabezpieczenia. Aby uzyskać więcej informacji, zobacz Setting Namepace Security Descriptors.
Poniższa procedura ustawia deskryptor zabezpieczeń root\MyNamespace przestrzeni nazw. Ciąg SDDL ustawia właściciela i grupę na uwierzytelnionych użytkowników i określa uznaniową listę kontroli dostępu (DACL) , która jest dziedziczona przez podrzędne przestrzenie nazw. DACL umożliwia użytkownikowi odczytywanie danych, wykonywanie metod, zapisywanie danych w klasach dostawców i używanie dostępu zdalnego: WBEM_ENABLE, WBEM_METHOD_EXECUTE, WBEM_WRITE_PROVIDER, WBEM_REMOTE_ACCESS. Aby uzyskać więcej informacji, zobacz Dostęp do przestrzeni nazw WMI.
Aby ustawić DACL przestrzeni nazw
Utwórz plik MOF (Managed Object Format) lub zmodyfikuj istniejący plik MOF, który definiuje przestrzeń nazw, aby dodać kwalifikator przestrzeni nazw SecuritySDDL z ciągiem SDDL.
Poniższy przykład kodu pokazuje, że przestrzeń nazw, która ma zostać zmodyfikowana, to root\MyNamespace, a plik ma nazwę MyNamespace_security.mof.
#pragma autorecover #pragma namespace("\\\\.\\root") [NamespaceSecuritySDDL ("O:BAG:BAD:(A;CI;0x60003;;;WD)")] Instance of __Namespace { Name = "MyNamespace"; };
Należy pamiętać, że w ciągu SDDL jest rozróżniana wielkość liter: litery muszą być pisane wielkimi literami.
Poniższy przykład kodu pokazuje litery "o" i "g" w ciągu SDDL jako małe litery i spowoduje, że Mofcomp.exe zwróci błąd.
#pragma autorecover #pragma namespace("\\\\.\\root") [NamespaceSecuritySDDL("o:BAg:BAD:(A;CI;0x60003;;;WD)")] Instance of __Namespace { Name = "MyNamespace"; };
Uruchom Mofcomp.exe, aby skompilować plik MOF.
c:\mofcomp MyNamespace_security.mof
W języku C++użyj metod IMoFCompiler.
Jeśli próba ustawienia listy kontroli dostępu (DACL) dla przestrzeni nazw zakończy się niepowodzeniem, rozważ następujące komunikaty o błędach:
Błąd Opis WBEM_E_INVALID_PARAMETER Nie ma dziedziczonego DACL. Alternatywnie obiekt wywołujący naruszył listę DACL lub SD w nadrzędnej przestrzeni nazw. WBEM_E_ACCESS_DENIED Obiekt wywołujący nie ma uprawnień do aktualizowania standardu SDDL w moF.
Tematy pokrewne