Identificadores de segurança

Um SID ( identificador de segurança ) é um valor exclusivo de comprimento variável usado para identificar um administrador. Cada conta tem um SID exclusivo emitido por uma autoridade, como um controlador de domínio Windows e armazenado em um banco de dados de segurança. Sempre que um usuário faz logon, o sistema recupera o SID desse usuário do banco de dados e o coloca no token de acesso desse usuário. O sistema usa o SID no token de acesso para identificar o usuário em todas as interações subsequentes com Windows segurança. Quando um SID tiver sido usado como o identificador exclusivo de um usuário ou grupo, ele não poderá ser usado novamente para identificar outro usuário ou grupo.

Windows segurança usa SIDs nos seguintes elementos de segurança:

Além dos SIDs exclusivos e específicos do domínio atribuídos a usuários e grupos específicos, há SIDs conhecidos que identificam grupos genéricos e usuários genéricos. Por exemplo, os SIDs conhecidos, Todos e Mundo, identificam um grupo que inclui todos os usuários.

A maioria dos aplicativos nunca precisa trabalhar com SIDs. Como os nomes de SIDs conhecidos podem variar, você deve usar as funções para criar o SID a partir de constantes predefinidas em vez de usar o nome do SID conhecido. Por exemplo, a versão em inglês dos EUA do sistema operacional Windows tem um SID conhecido chamado "BUILTIN\Administrators" que pode ter um nome diferente em versões internacionais do sistema. Para obter um exemplo que cria um SID bem conhecido, consulte Pesquisar um SID em um Token de Acesso no C++.

Se você precisar trabalhar com SIDs, não manipule-os diretamente. Em vez disso, use as funções a seguir.

Função Descrição
AllocateAndInitializeSid Aloca e inicializa um SID com o número especificado de subautoridades.
ConvertSidToStringSid Converte um SID em um formato de cadeia de caracteres adequado para exibição, armazenamento ou transporte.
ConvertStringSidToSid Converte um SID em formato de cadeia de caracteres em um SID válido e funcional.
CopySid Copia um SID de origem para um buffer.
EqualPrefixSid Testa dois valores de prefixo SID para igualdade. Um prefixo SID é o SID inteiro, exceto pelo último valor de subautoridade.
EqualSid Testa dois SIDs para igualdade. Eles devem corresponder exatamente para serem considerados iguais.
FreeSid Libera um SID alocado anteriormente usando a função AllocateAndInitializeSid .
GetLengthSid Recupera o comprimento de um SID.
GetSidIdentifierAuthority Recupera um ponteiro para a autoridade de identificador de um SID.
GetSidLengthRequired Recupera o tamanho do buffer necessário para armazenar um SID com um número especificado de subautoridades.
GetSidSubAuthority Recupera um ponteiro para uma subautoridade especificada em um SID.
GetSidSubAuthorityCount Recupera o número de sub-coautorias em um SID.
InitializeSid Inicializa uma estrutura sid .
IsValidSid Testa a validade de um SID verificando se o número de revisão está dentro de um intervalo conhecido e se o número de subautoridades é menor que o máximo.
Lookupaccountname Recupera o SID que corresponde a um nome de conta especificado.
Lookupaccountsid Recupera o nome da conta que corresponde a um SID especificado.