Reservando namespaces URL usando Http.sys
Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.
Você pode reservar explicitamente um namespace URL em HTTP.SYS e depois usar esse namespace para criar pontos de extremidade HTTP. Para fazê-lo, é necessário entender o conceito de reserva de namespaces explícita e implícita, e como o SQL Server registra um ponto de extremidade HTTP com HTTP.SYS.
Reserva de namespaces explícita e implícita
Quando um usuário executa uma instrução CREATE ENDPOINT, como a seguinte:
CREATE ENDPOINT sql_endpoint
STATE = STARTED
AS HTTP (
PATH = '/sql/AdvWorks',
AUTHENTICATION = (INTEGRATED ),
PORTS = ( CLEAR ),
SITE = 'MyServer'
)
FOR SOAP (
...
)
Go
O namespace http://MyServer:80/sql/AdvWorks é reservado implicitamente em HTTP.SYS. Isto significa que enquanto o aplicativo baseado no SQL Server está em execução, qualquer solicitação HTTP para este ponto de extremidade é encaminhada à instância do SQL Server. Porém, esse namespace pode ser utilizado por outros aplicativos, se a instância do SQL Server não estiver em execução.
Ao reservar um namespace explicitamente, o namespace é reservado especificamente para o SQL Server, e todas as solicitações HTTP para este ponto de extremidade são encaminhadas para a instância do SQL Server. Para obter mais informações, consulte Reservando um namespace HTTP.
Observação |
---|
O Visual Studio 2005 e Http.sys seguem regras de conversão em formato canônico de URL diferentes. Por exemplo, Http.sys pode aceitar um curinga inclusivo, como "/SQL/Mypath/...", especificado como parte da configuração PATH quando um ponto de extremidade é criado. Entretanto, o Visual Studio 2005 tem regras de conversão em formato canônico mais rígidas e corta as informações "..." antes de transmitir a URL. |
Como o SQL Server registra o ponto de extremidade
Para gerenciar pontos de extremidade HTTP, use CREATE ENDPOINT, ALTER ENDPOINT e DROP ENDPOINT. Você deve ter as permissões necessárias para criar, modificar ou descartar um ponto de extremidade. Isso está descrito no tópico Permissões de ponto de extremidade GRANT (Transact-SQL).
Ao executar CREATE ENDPOINT para criar um ponto de extremidade, o SQL Server executa a instrução e registra o ponto de extremidade com HTTP.SYS. Dependendo do contexto no qual a instrução de ponto de extremidade está especificada, o SQL Server representa o chamador, da seguinte maneira:
Se você executar a instrução no contexto de uma conta do Windows, o SQL Server representará o chamador para registrar o ponto de extremidade com HTTP.SYS.
Se você executar a instrução no contexto de uma conta do SQL Server, por exemplo, sa ou algum outro logon do SQL Server, o SQL Server representará o chamador usando a conta do SQL Server, especificada quando o SQL Server foi instalado, para registrar o ponto de extremidade com HTTP.SYS.
A conta do Windows e a conta do SQL Server que o SQL Server representa devem ter privilégios de administrador local do Windows para que o registro do ponto de extremidade HTTP tenha êxito.
Verificando reservas de namespace HTTP
Para determinar quais namespaces estão reservados em HTTP.SYS, execute o utilitário de configuração HTTP, Httpcfg.exe, no prompt de comando.
Observação |
---|
O Httpcfg.exe é instalado como parte das ferramentas de suporte do Windows Server. Para obter mais informações, consulte Configurando o driver do modo kernel HTTP (Http.sys). |
Segue um exemplo de uso do Httpcfg.exe para retornar a lista de namespaces HTTP reservados:
httpcfg query urlacl
Este comando exibirá uma lista de todas as reservas de namespaces existentes, retornando a URL do namespace o a conta na qual ele foi reservado.
Segue uma saída típica deste comando:
URL: http://adventure-works.com:80/sql/
ACL : D:(A;;GA;;;S-1-5-21-123456789-1234567890-1262470759-1010)
-----------------------------------------------------------------
URL : https://adventure-works.com:443/sql/
ACL : D:(A;;GA;;;NS)
-----------------------------------------------------------------
Observação |
---|
Este procedimento pode ser executado somente por membros da função sysadmin e exige que a representação da conta tenha privilégios de administrador no computador. |