Compartilhar via


Definir a segurança na criação do namespace

O arquivo MOF (Managed Object Format) que cria um namespace também pode definir os descritores de segurança para o namespace, incluindo o qualificador NamespaceSecuritySDDL com o descritor de segurança no formato SDDL (linguagem de definição de descritor de segurança).

Você pode usar NamespaceSecuritySDDL para proteger qualquer namespace. Você também pode usar esse qualificador em um arquivo MOF simples para alterar o descritor de segurança em um namespace existente. A cadeia de caracteres SDDL é processada pelo WMI para estabelecer a segurança de namespace, mas não é armazenada como uma cadeia de caracteres. Se nenhum descritor de segurança for especificado, a segurança padrão será usada. Para obter mais informações, consulte Definir descritores de segurança de namespace.

O procedimento a seguir define o descritor de segurança do namespace root\MyNamespace. A cadeia de caracteres SDDL define o proprietário e o grupo como usuários autenticados e especifica uma DACL (lista de controle de acesso discricionário) herdada por namespaces filho. A DACL permite ao usuário o direito de ler dados, executar métodos, gravar dados em classes de provedor e usar o acesso remoto: WBEM_ENABLE, WBEM_METHOD_EXECUTE, WBEM_WRITE_PROVIDER, WBEM_REMOTE_ACCESS. Para obter mais informações, consulte Acesso a namespaces do WMI.

Para definir uma DACL de namespace

  1. Crie um arquivo MOF (Managed Object Format) ou modifique o arquivo MOF existente que define o namespace para adicionar o qualificador NamespaceSecuritySDDL com a cadeia de caracteres SDDL.

    O exemplo de código a seguir mostra que o namespace a ser modificado é root\MyNamespace e o arquivo se chama MyNamespace_security.mof.

    #pragma autorecover
    #pragma namespace("\\\\.\\root")
    [NamespaceSecuritySDDL ("O:BAG:BAD:(A;CI;0x60003;;;WD)")]
    Instance of __Namespace
    {
      Name = "MyNamespace";
    };
    
  2. Lembre-se de que a cadeia de caracteres SDDL diferencia maiúsculas de minúsculas: as letras devem ser maiúsculas.

    O exemplo de código a seguir mostra as letras "o" e "g" na cadeia de caracteres SDDL como minúsculas e fará com que Mofcomp.exe retorne um erro.

    #pragma autorecover
    #pragma namespace("\\\\.\\root")
    [NamespaceSecuritySDDL("o:BAg:BAD:(A;CI;0x60003;;;WD)")] 
    Instance of __Namespace
    {
      Name = "MyNamespace";
    };
    
  3. Execute Mofcomp.exe para compilar o arquivo MOF.

    c:\mofcomp MyNamespace_security.mof

    Em C++, use os métodos IMoFCompiler.

  4. Se a tentativa de definir o DACL de namespace falhar, considere as seguintes mensagens de erro:

    Erro Descrição
    WBEM_E_INVALID_PARAMETER Não há DACL herdada. Como alternativa, o chamador violou a DACL ou o SD no namespace pai.
    WBEM_E_ACCESS_DENIED O chamador não tem permissão para atualizar o SDDL no MOF.

     

Definir descritores de segurança de namespace

Constantes de direitos de acesso de namespace

Constantes de sinalizadores da ACE de namespace

Alterar a segurança do acesso em objetos protegíveis