Como proteger os recursos

A capacidade do Windows Installer de definir permissões de acesso em serviços, arquivos, pastas criadas e entradas do Registro pode ajudar a tornar os aplicativos de instalação mais seguros. O uso das tabelas MsiLockPermissionsEx ou LockPermissions para proteger os recursos é uma das Diretrizes para criar instalações seguras recomendadas. A tabela MsiLockPermissionsEx pode permitir que um autor de pacote proteja um recurso sem precisar escrever uma ação personalizada.

A partir dos pacotes desenvolvidos para o Windows Installer 5.0, a tabela MsiLockPermissionsEx deve substituir o uso da tabela LockPermissions. A funcionalidade estendida fornecida pela tabela MsiLockPermissionsEx permite que um pacote proteja serviços, arquivos, pastas e chaves do Registro do Windows. Um pacote não deve conter as tabelas MsiLockPermissionsEx e LockPermissions.

O Windows Installer 4.5 e versões anteriores ignora a tabela MsiLockPermissionsEx. A partir do Windows Installer 5.0, ocorrerá uma falha na instalação com a mensagem de erro 1941 se o pacote contiver uma tabela LockPermissions e uma tabela MsiLockPermissionsEx. Os pacotes de instalação existentes que contêm apenas a tabela LockPermissions ainda podem ser instalados por meio do Windows Installer 5.0.

O Windows Installer 5.0 processa as informações da tabela MsiLockPermissionsEx quando executa as ações padrão InstallFiles, InstallServices, WriteRegistryValues e CreateFolders. Um objeto protegível precisa ser instalado ou reinstalado para ser protegido, e não é possível acrescentar uma ACL (Lista de Controle de Acesso) a um objeto existente sem reinstalá-lo.

Para especificar o serviço, o arquivo, o diretório ou a chave do Registro que deve ser protegido, insira as informações de identificação nos campos LockObject e Table da tabela MsiLockPermissionsEx. Um objeto é identificado pela chave primária na tabela ServiceInstall, File, Registry ou CreateFolder.

Para solicitar que as permissões especificadas se apliquem a um objeto, insira uma cadeia de caracteres válida de descritor de segurança no campo SDDLText da tabela MsiLockPermissionsEx usando uma linguagem SDDL válida. A tabela MsiLockPermissionsEx pode especificar um descritor de segurança que nega permissões, especifica a herança de permissões de um recurso pai ou especifica as permissões de uma nova conta. Para ver a lista de todas as permissões que podem ser concedidas, negadas ou herdadas, confira Cadeias de caracteres de ACE. O Windows Installer 5.0 estende o conjunto de SIDs (identificadores de segurança) disponíveis. Para ver a lista dos SIDs válidos, confira Cadeias de caracteres de SIDs.

Observação

Se você quiser configurar o descritor de segurança de um recurso pai para especificar que as permissões dele sejam herdadas pelos objetos filho, o instalador precisará aplicar permissões ao recurso pai antes de criar os objetos filho. Se o instalador criar os objetos filho antes de aplicar as permissões herdáveis ao recurso pai, as permissões do recurso pai não serão propagadas para os objetos filho.

A partir do Windows Installer 5.0, o tipo de dados FormattedSDDLText estende o tipo de dados Formatted. O Windows Installer valida se a cadeia de caracteres FormattedSDDLText inserida na coluna SDDLText da tabela MsiLockPermissionsEx está em conformidade com o Formato de Cadeia de Caracteres do Descritor de Segurança.

Windows Installer 4.5 ou versões anteriores: sem suporte. A tabela MsiLockPermissionsEx e o tipo de dados FormattedSDDLText estão disponíveis a partir do Windows Installer 5.0.