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 do 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 a segurança do Windows. Quando um SID tiver sido usado como o identificador exclusivo para um usuário ou grupo, ele não poderá ser usado novamente para identificar outro usuário ou grupo.

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

Além dos SIDs específicos do domínio criados exclusivamente 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 conhecido, consulte Pesquisando um SID em um token de acesso em 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 de 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 quanto à 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 subautoridades 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.