Introdução à integração CLR do SQL Server
O Common Language Runtime (CLR) é o coração do .NET Framework e fornece o ambiente de execução para todo o código do .NET Framework. O código executado dentro do CLR é chamado de código gerenciado. O CLR fornece várias funções e serviços necessários para a execução do programa, incluindo compilação just-in-time (JIT), alocação e gerenciamento de memória, imposição de segurança de tipo, tratamento de exceções, gerenciamento de threads e segurança.
Com o CLR hospedado no Microsoft SQL Server (chamado de integração CLR), você pode criar procedimentos armazenados, gatilhos, funções definidas pelo usuário, tipos definidos pelo usuário e agregações definidas pelo usuário em código gerenciado. Como o código gerenciado é compilado para código nativo antes da execução, você pode obter aumentos significativos de desempenho em alguns cenários.
O código gerenciado em execução no .NET Framework usa CAS (Segurança de Acesso ao Código), links de código e domínios de aplicativo para impedir que assemblies executem determinadas operações. O SQL Server usa o CAS para ajudar a proteger o código gerenciado e evitar o comprometimento do sistema operacional ou do servidor de banco de dados.
Nota
O CAS (Code Access Security) foi preterido em todas as versões do .NET Framework e do .NET. As versões recentes do .NET não respeitam as anotações do CAS e produzem erros se as APIs relacionadas ao CAS forem usadas. Os desenvolvedores devem procurar meios alternativos de realizar tarefas de segurança.
Esta seção destina-se a fornecer apenas informações suficientes para começar a programar com a integração CLR do SQL Server e não se destina a ser abrangente. Para obter informações mais detalhadas, consulte Visão geral da integração do Common Language Runtime (CLR).
Habilitando a integração CLR
O recurso de integração CLR (Common Language Runtime) está desativado por padrão no Microsoft SQL Server e deve ser habilitado para usar objetos implementados usando a integração CLR. Para habilitar a integração CLR usando Transact-SQL, use a clr enabled
opção do sp_configure
procedimento armazenado conforme mostrado:
sp_configure 'clr enabled', 1
GO
RECONFIGURE
GO
Você pode desabilitar a integração CLR definindo a clr enabled
opção como 0. Quando você desabilita a integração CLR, o SQL Server para de executar todas as rotinas CLR e descarrega todos os domínios de aplicativo.
Para obter informações mais detalhadas, consulte Habilitando a integração CLR.
Implantando um assembly CLR
Depois que os métodos CLR tiverem sido testados e verificados no servidor de teste, eles poderão ser distribuídos aos servidores de produção usando um script de implantação. O script de implantação pode ser gerado manualmente ou usando o SQL Server Management Studio. Para obter informações mais detalhadas, consulte a versão da documentação do SQL Server para a versão do SQL Server que você está usando.
Documentação do SQL Server
Segurança de integração CLR
O modelo de segurança da integração do Microsoft SQL Server com o Common Language Runtime (CLR) do Microsoft .NET Framework gerencia e protege o acesso entre diferentes tipos de objetos CLR e não CLR em execução no SQL Server. Esses objetos podem ser chamados por uma instrução Transact-SQL ou outro objeto CLR em execução no servidor.
Para obter informações mais detalhadas, consulte Segurança de integração CLR.
Depurando um assembly CLR
O Microsoft SQL Server fornece suporte para depuração de objetos Transact-SQL e CLR (Common Language Runtime) no banco de dados. A depuração funciona em vários idiomas: os usuários podem entrar perfeitamente em objetos CLR a partir do Transact-SQL e vice-versa.
Para obter informações mais detalhadas, consulte Depurando objetos de banco de dados CLR.