Partilhar via


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.