Constantes de privilégio (autorização)

Os privilégios determinam o tipo de operações do sistema que uma conta de usuário pode executar. Um administrador atribui privilégios a contas de usuário e de grupo. Os privilégios de cada usuário incluem aqueles concedidos ao usuário e aos grupos aos quais o usuário pertence.

As funções que obtêm e ajustam os privilégios em um token de acesso usam o tipo LUID identificador exclusivo local para identificar privilégios. Use a função LookupPrivilegeValue para determinar o LUID no sistema local que corresponde a uma constante de privilégio. Use a função LookupPrivilegeName para converter um LUID na constante de cadeia de caracteres correspondente.

O sistema operacional representa um privilégio usando a cadeia de caracteres após “Direito de usuário” na coluna Descrição da tabela a seguir. O sistema operacional exibe as cadeias de caracteres do direito do usuário na coluna Política do nó Atribuição de Direitos de Usuário do snap-in MMC (Console de Gerenciamento Microsoft) em Configurações de Segurança Local.

Exemplo

BOOL EnablePrivilege()
{
    LUID PrivilegeRequired ;
    BOOL bRes = FALSE;
  
    bRes = LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &PrivilegeRequired);

    // ...

    return bRes;
}

Exemplo das Amostras do Windows Classic no GitHub.

Constantes

Constante/valor Descrição
SE_ASSIGNPRIMARYTOKEN_NAME
TEXT("SeAssignPrimaryTokenPrivilege")
Necessário para atribuir o token primário de um processo.
Direito de usuário: substituir um token de nível de processo.
SE_AUDIT_NAME
TEXT("SeAuditPrivilege")
Necessário para gerar entradas de log de auditoria. Dê esse privilégio a servidores seguros.
Direito de usuário: gerar auditorias de segurança.
SE_BACKUP_NAME
TEXT("SeBackupPrivilege")
Necessário para executar operações de backup. Esse privilégio faz com que o sistema conceda todo o controle de acesso de leitura a qualquer arquivo, independentemente da ACL (lista de controle de acesso) especificada para o arquivo. Qualquer solicitação de acesso diferente da leitura ainda é avaliada com a ACL. Esse privilégio é exigido pelas funções RegSaveKey e RegSaveKeyEx. Os seguintes direitos de acesso serão concedidos se esse privilégio for mantido:
  • READ_CONTROL
  • ACCESS_SYSTEM_SECURITY
  • FILE_GENERIC_READ
  • FILE_TRAVERSE
Direito de usuário: fazer backup de arquivos e diretórios.
Se o arquivo estiver localizado em uma unidade removível e a opção “Auditar Armazenamento Removível” estiver habilitada, o SE_SECURITY_NAME precisará ter ACCESS_SYSTEM_SECURITY.
SE_CHANGE_NOTIFY_NAME
TEXT("SeChangeNotifyPrivilege")
Necessário para receber notificações de alterações em arquivos ou diretórios. Esse privilégio também faz com que o sistema ignore todas as verificações de acesso transversal. Ele é habilitado por padrão para todos os usuários.
Direito de usuário: ignorar a verificação transversal.
SE_CREATE_GLOBAL_NAME
TEXT("SeCreateGlobalPrivilege")
Necessário para criar objetos de mapeamento de arquivo nomeado no namespace global durante as sessões dos Serviços de Terminal. Esse privilégio é habilitado por padrão para administradores, serviços e a conta do sistema local.
Direito de usuário: criar objetos globais.
SE_CREATE_PAGEFILE_NAME
TEXT("SeCreatePagefilePrivilege")
Necessário para criar um arquivo de paginação.
Direito de usuário: criar um arquivo de paginação.
SE_CREATE_PERMANENT_NAME
TEXT("SeCreatePermanentPrivilege")
Necessário para criar um objeto permanente.
Direito de usuário: criar objetos compartilhados permanentes.
SE_CREATE_SYMBOLIC_LINK_NAME
TEXT("SeCreateSymbolicLinkPrivilege")
Necessário para criar um link simbólico.
Direito de usuário: criar links simbólicos.
SE_CREATE_TOKEN_NAME
TEXT("SeCreateTokenPrivilege")
Necessário para criar um token primário.
Direito de usuário: criar um objeto de token.
Não é possível adicionar esse privilégio a uma conta de usuário com a política “Criar um objeto de token”. Além disso, não é possível adicionar esse privilégio a um processo próprio usando APIs do Windows.Windows Server 2003 e Windows XP com SP1 e versões anteriores: as APIs do Windows podem adicionar esse privilégio a um processo próprio.

SE_DEBUG_NAME
TEXT("SeDebugPrivilege")
Necessário para depurar e ajustar a memória de um processo pertencente a outra conta.
Direito de usuário: depurar programas.
SE_DELEGATE_SESSION_USER_IMPERSONATE_NAME
TEXT("SeDelegateSessionUserImpersonatePrivilege")
Necessário para obter um token de representação para outro usuário na mesma sessão.
Direito de usuário: representar outros usuários.
SE_ENABLE_DELEGATION_NAME
TEXT("SeEnableDelegationPrivilege")
Necessário para marcar contas de usuário e de computador como confiáveis para delegação.
Direito de usuário: permitir que as contas de computador e de usuário sejam confiáveis para delegação.
SE_IMPERSONATE_NAME
TEXT("SeImpersonatePrivilege")
Necessário para representação.
Direito de usuário: representar um cliente após a autenticação.
SE_INC_BASE_PRIORITY_NAME
TEXT("SeIncreaseBasePriorityPrivilege")
Necessário para aumentar a prioridade base de um processo.
Direito de usuário: aumentar a prioridade de agendamento.
SE_INCREASE_QUOTA_NAME
TEXT("SeIncreaseQuotaPrivilege")
Necessário para aumentar a cota atribuída a um processo.
Direito de usuário: ajustar quotas de memória para um processo.
SE_INC_WORKING_SET_NAME
TEXT("SeIncreaseWorkingSetPrivilege")
Necessário para alocar mais memória a aplicativos que são executados no contexto dos usuários.
Direito de usuário: aumentar um conjunto de trabalho de processo.
SE_LOAD_DRIVER_NAME
TEXT("SeLoadDriverPrivilege")
Necessário para carregar ou descarregar um driver de dispositivo.
Direito de usuário: carregar e descarregar drivers de dispositivo.
SE_LOCK_MEMORY_NAME
TEXT("SeLockMemoryPrivilege")
Necessário para bloquear páginas físicas na memória.
Direito de usuário: bloquear páginas na memória.
SE_MACHINE_ACCOUNT_NAME
TEXT("SeMachineAccountPrivilege")
Necessário para criar uma conta de computador.
Direito de usuário: adicionar estações de trabalho ao domínio.
SE_MANAGE_VOLUME_NAME
TEXT("SeManageVolumePrivilege")
Necessário para habilitar privilégios de gerenciamento de volume.
Direito de usuário: realizar tarefas de manutenção de volume.
SE_PROF_SINGLE_PROCESS_NAME
TEXT("SeProfileSingleProcessPrivilege")
Necessário para coletar informações de criação de perfil para um processo individual.
Direito de usuário: analisar processo individual.
SE_RELABEL_NAME
TEXT("SeRelabelPrivilege")
Necessário para modificar o nível de integridade obrigatório de um objeto.
Direito de usuário: modificar um rótulo de objeto.
SE_REMOTE_SHUTDOWN_NAME
TEXT("SeRemoteShutdownPrivilege")
Necessário para desligar um sistema usando uma solicitação de rede.
Direito de usuário: forçar o desligamento por meio de um sistema remoto.
SE_RESTORE_NAME
TEXT("SeRestorePrivilege")
Necessário para executar operações de restauração. Esse privilégio faz com que o sistema conceda todo o controle de acesso de gravação a qualquer arquivo, independentemente da ACL especificada para o arquivo. Qualquer solicitação de acesso diferente da gravação ainda é avaliada com a ACL. Além disso, esse privilégio permite que você defina qualquer SID de usuário ou de grupo válido como o proprietário de um arquivo. Esse privilégio é exigido pela função RegLoadKey. Os seguintes direitos de acesso serão concedidos se esse privilégio for mantido:
  • WRITE_DAC
  • WRITE_OWNER
  • ACCESS_SYSTEM_SECURITY
  • FILE_GENERIC_WRITE
  • FILE_ADD_FILE
  • FILE_ADD_SUBDIRECTORY
  • DELETE
Direito de usuário: restaurar arquivos e diretórios.
Se o arquivo estiver localizado em uma unidade removível e a opção “Auditar Armazenamento Removível” estiver habilitada, o SE_SECURITY_NAME precisará ter ACCESS_SYSTEM_SECURITY.
SE_SECURITY_NAME
TEXT("SeSecurityPrivilege")
Necessário para executar várias funções relacionadas à segurança, como controlar e exibir mensagens de auditoria. Esse privilégio identifica o respectivo detentor como um operador de segurança.
Direito de usuário: gerenciar a auditoria e o log de segurança.
SE_SHUTDOWN_NAME
TEXT("SeShutdownPrivilege")
Necessário para desligar um sistema local.
Direito de usuário: desligar o sistema.
SE_SYNC_AGENT_NAME
TEXT("SeSyncAgentPrivilege")
Necessário para que um controlador de domínio use os serviços de sincronização de diretório do protocolo LDAP. Esse privilégio permite que o detentor leia todos os objetos e propriedades do diretório, independentemente da proteção nos objetos e nas propriedades. Por padrão, esses direitos são atribuídos às contas de Administrador e LocalSystem nos controladores de domínio.
Direito de usuário: sincronizar dados do serviço de diretório.
SE_SYSTEM_ENVIRONMENT_NAME
TEXT("SeSystemEnvironmentPrivilege")
Necessário para modificar a RAM não volátil de sistemas que usam esse tipo de memória para armazenar informações de configuração.
Direito de usuário: modificar valores de ambiente de firmware.
SE_SYSTEM_PROFILE_NAME
TEXT("SeSystemProfilePrivilege")
Necessário para coletar informações de criação de perfil para todo o sistema.
Direito de usuário: analisar o desempenho do sistema.
SE_SYSTEMTIME_NAME
TEXT("SeSystemtimePrivilege")
Necessário para modificar a hora do sistema.
Direito de usuário: alterar a hora do sistema.
SE_TAKE_OWNERSHIP_NAME
TEXT("SeTakeOwnershipPrivilege")
Necessário para assumir a propriedade de um objeto sem ter acesso discricionário. Esse privilégio permite que o valor do proprietário seja definido apenas para aqueles valores que o detentor pode legitimamente atribuir como o proprietário de um objeto.
Direito de usuário: assumir a propriedade de arquivos ou de outros objetos.
SE_TCB_NAME
TEXT("SeTcbPrivilege")
Esse privilégio identifica o respectivo detentor como parte da base de computadores confiáveis. Alguns subsistemas protegidos confiáveis recebem esse privilégio.
Direito de usuário: atuar como parte do sistema operacional.
SE_TIME_ZONE_NAME
TEXT("SeTimeZonePrivilege")
Necessário para ajustar o fuso horário associado ao relógio interno do computador.
Direito de usuário: alterar o fuso horário.
SE_TRUSTED_CREDMAN_ACCESS_NAME
TEXT("SeTrustedCredManAccessPrivilege")
Necessário para acessar o Gerenciador de Credenciais como um chamador confiável.
Direito de usuário: acessar o Gerenciador de Credenciais como um chamador confiável.
SE_UNDOCK_NAME
TEXT("SeUndockPrivilege")
Necessário para desencaixar um laptop.
Direito de usuário: remover o computador da base de encaixe.
SE_UNSOLICITED_INPUT_NAME
TEXT("SeUnsolicitedInputPrivilege")
Necessário para ler entradas não solicitadas de um dispositivo de terminal.
Direito de usuário: não aplicável.

Comentários

As constantes de privilégio são definidas como cadeias de caracteres no Winnt.h. Por exemplo, a constante SE_AUDIT_NAME é definida como “SeAuditPrivilege”.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho
Winnt.h

Confira também

Privilégios