Segurança da Chave de Registo e Direitos de Acesso
O modelo de segurança do Windows permite controlar o acesso às chaves do Registro. Para obter mais informações sobre segurança, consulte Access-Control Model.
Você pode especificar um descritor de segurança para uma chave do Registro ao chamar o RegCreateKeyEx ou função RegSetKeySecurity. Se você especificar NULL , a chave obterá um descritor de segurança padrão. As ACLs em um descritor de segurança padrão para uma chave são herdadas de sua chave pai direta.
Para obter o descritor de segurança de uma chave do Registro, chame o RegGetKeySecurity, GetNamedSecurityInfoou função GetSecurityInfo.
Os direitos de acesso válidos para chaves do Registro incluem os direitos de acesso padrão DELETE, READ_CONTROL, WRITE_DAC e WRITE_OWNER . As chaves do Registro não suportam o direito de acesso padrão SYNCHRONIZE.
A tabela a seguir lista os direitos de acesso específicos para objetos de chave do Registro.
Valor | Significado |
---|---|
KEY_ALL_ACCESS (0xF003F) |
Combina os direitos de acesso STANDARD_RIGHTS_REQUIRED, KEY_QUERY_VALUE, KEY_SET_VALUE, KEY_CREATE_SUB_KEY, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY e KEY_CREATE_LINK. |
KEY_CREATE_LINK (0x0020) |
Reservado para uso do sistema. |
KEY_CREATE_SUB_KEY (0x0004) |
Necessário para criar uma subchave de uma chave do Registro. |
KEY_ENUMERATE_SUB_KEYS (0x0008) |
Necessário para enumerar as subchaves de uma chave do Registro. |
KEY_EXECUTE (0x20019) |
Equivalente a KEY_READ. |
KEY_NOTIFY (0x0010) |
Necessário para solicitar notificações de alteração para uma chave do Registro ou para subchaves de uma chave do Registro. |
KEY_QUERY_VALUE (0x0001) |
Necessário para consultar os valores de uma chave do Registro. |
KEY_READ (0x20019) |
Combina os valores STANDARD_RIGHTS_READ, KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS e KEY_NOTIFY. |
KEY_SET_VALUE (0x0002) |
Necessário para criar, excluir ou definir um valor do Registro. |
KEY_WOW64_32KEY (0x0200) |
Indica que um aplicativo no Windows de 64 bits deve operar no modo de exibição do Registro de 32 bits. Este sinalizador é ignorado pelo Windows de 32 bits. Para obter mais informações, consulte acessando um modo de exibição alternativo do Registro. Esse sinalizador deve ser combinado usando o operador OR com os outros sinalizadores nesta tabela que consultam ou acessam valores do Registro. Windows 2000: Este sinalizador não é suportado. |
KEY_WOW64_64KEY (0x0100) |
Indica que um aplicativo no Windows de 64 bits deve operar no modo de exibição do Registro de 64 bits. Este sinalizador é ignorado pelo Windows de 32 bits. Para obter mais informações, consulte acessando um modo de exibição alternativo do Registro. Esse sinalizador deve ser combinado usando o operador OR com os outros sinalizadores nesta tabela que consultam ou acessam valores do Registro. Windows 2000: Este sinalizador não é suportado. |
KEY_WRITE (0x20006) |
Combina os direitos de acesso STANDARD_RIGHTS_WRITE, KEY_SET_VALUE e KEY_CREATE_SUB_KEY. |
Quando você chama a funçãoRegOpenKeyEx, o sistema verifica os direitos de acesso solicitados em relação ao descritor de segurança da chave. Se o usuário não tiver o acesso correto à chave do Registro, a operação aberta falhará. Se um administrador precisar de acesso à chave, a solução é habilitar o privilégio SE_TAKE_OWNERSHIP_NAME e abrir a chave do Registro com acesso WRITE_OWNER. Para obter mais informações, consulte Habilitando e desabilitando privilégios.
Você pode solicitar o direito de acesso ACCESS_SYSTEM_SECURITY a uma chave do Registro se quiser ler ou gravar a lista de controle de acesso do sistema (SACL) da chave. Para obter mais informações, consulte Listas de Access-Control (ACLs) e de Direito de Acesso SACL.
Para exibir os direitos de acesso atuais de uma chave, incluindo as chaves predefinidas, use o Editor do Registro (Regedt32.exe). Depois de navegar até a chave desejada, vá para o menu Editar e selecione Permissões.