Atributos de proteção de host e programação de integração CLR
Aplica-se a:SQL Server
O Common Language Runtime (CLR) fornece um mecanismo para anotar interfaces de programação de aplicativos (APIs) gerenciadas que fazem parte do .NET Framework. Esses atributos podem ser de interesse para um host do CLR, como o SQL Server. Exemplos de tais atributos de proteção de host (HPAs) incluem:
SharedState
, que indica se a API expõe a capacidade de criar ou gerenciar o estado compartilhado (por exemplo, campos de classe estática).Synchronization
, que indica se a API expõe a capacidade de executar a sincronização entre threads.ExternalProcessMgmt
, que indica se a API expõe uma maneira de controlar o processo do host.
Considerando esses atributos, o SQL Server especifica uma lista de HPAs que não são permitidos no ambiente hospedado por meio da segurança de acesso ao código (CAS). Os requisitos de CAS são especificados por um dos três conjuntos de permissões do SQL Server: SAFE
, EXTERNAL_ACCESS
ou UNSAFE
. Um desses três níveis de segurança é especificado quando o assembly é registrado no servidor, usando a instrução CREATE ASSEMBLY
. O código executado dentro dos conjuntos de permissões SAFE
ou EXTERNAL_ACCESS
deve evitar certos tipos ou membros que tenham o atributo System.Security.Permissions.HostProtectionAttribute
aplicado. Para obter mais informações, consulte Criar um de montagem e restrições do modelo de programação de integração CLR.
O HostProtectionAttribute
não é uma permissão de segurança, mas uma maneira de melhorar a confiabilidade, na medida em que identifica construções de código específicas, tipos ou métodos, que o host pode não permitir. O uso do HostProtectionAttribute
impõe um modelo de programação que ajuda a proteger a estabilidade do host.
Atributos de proteção do host
Os HPAs identificam tipos ou membros que não se encaixam no modelo de programação do host e representam os seguintes níveis crescentes de ameaça à confiabilidade:
- São benignos.
- Pode levar à desestabilização do código do usuário gerenciado pelo servidor.
- Poderia levar à desestabilização do próprio processo do servidor.
O SQL Server não permite o uso de um tipo ou membro que tenha um HostProtectionAttribute
que especifica uma enumeração de System.Security.Permissions.HostProtectionResource
com um valor de ExternalProcessMgmt
, ExternalThreading
, MayLeakOnAbort
, SecurityInfrastructure
, SelfAffectingProcessMgmnt
, SelfAffectingThreading
, SharedState
, Synchronization
ou UI
. Isso impede que os assemblies chamem membros que habilitam o estado de compartilhamento, executam sincronização, podem causar um vazamento de recursos no encerramento ou afetar a integridade do processo do SQL Server.
Tipos e membros não permitidos
Os artigos a seguir identificam tipos e membros cujos valores de HostProtectionResource
o SQL Server não permite.
As listas nestes artigos foram geradas a partir dos assemblies suportados. Para obter mais informações, consulte bibliotecas suportadas do .NET Framework.
Nesta secção
Artigo | Descrição |
---|---|
Tipos e membros não permitidos no Microsoft.VisualBasic.dll | Lista os tipos e membros em Microsoft.VisualBasic.dll cujos valores de HPA não são permitidos. |
Tipos e membros não permitidos no mscorlib.dll | Lista os tipos e membros em mscorlib.dll cujos valores de HPA não são permitidos. |
Tipos e membros não permitidos no System.dll | Lista os tipos e membros em System.dll cujos valores de HPA não são permitidos. |
Tipos e membros não permitidos no System.Data.dll | Lista os tipos e membros em System.Data.dll cujos valores de HPA não são permitidos. |
Tipos e membros não permitidos no System.Core.dll | Lista os tipos e membros em System.Core.dll cujos valores de HPA não são permitidos. |
Conteúdo relacionado
- Integração CLR de Segurança de Acesso ao Código
- restrições do modelo de programação de integração CLR
- Criar uma de montagem