Você está na página 1de 12

Índice

Introdução..................................................................................................................................................2
HTTP ENDPOINTS..................................................................................................................................3
Gerenciando de HTTP ENDPOINT.........................................................................................................4
A Instrução CREATE ENDPOINT.........................................................................................................4
Alterando um ENDPOINT.......................................................................................................................6
Drop ENDPOINT......................................................................................................................................7
Autenticação do ENDPOINT....................................................................................................................8
Gerenciamento de permissões em ENDPOINT.......................................................................................9
Criar permissão.......................................................................................................................................10
Alterar permissão....................................................................................................................................10
Controle de Permissão.............................................................................................................................11
Permissão de conexão..............................................................................................................................11
Permissão de propriedade.......................................................................................................................11
Introdução

O SQL Server 2000 ofereceu suporte ao serviço Web SOAP (Simple Object Access Protocol) via
SQLXML. Já O SQL Server 2005 fornece HTTP Endpoints nativos para mostrar seus
procedimentos armazenados como métodos web diretamente do SQL Server por meio do
protocolo SOAP.
HTTP Endpoints são fáceis de criar e administrar, e o modelo SQL Server HTTP endpoints
fornece integração de segurança com o SQL Server.

Os HTTP Endpoints aumentam o nível de funcionalidade do SQL Server de apenas um sistema


de gerenciamento de base de dados para um servidor de aplicativos completo. Uma associação
entre uma ligação e um endereço de rede, especificado por um URL, que pode ser usado para se
comunicar com uma instância de um serviço. Um endpoint indica um local específico para
acessar um serviço usando um protocolo específico e formato de dados. (w3c).

2
HTTP ENDPOINTS

Um HTTP Endpoint é um objeto do Sql Server que é usado pelo Sql Server para se comunicar
pela rede. Inclui métodos web, que normalmente são os procedimentos armazenados (T-Sql ou
CLR) executados dentro da base de dados e são consultados pelos serviços web.

O SQL Server fornece suporte interno para mostrar endpoints sobre o protocolo HTTP,
permitindo acessar procedimentos armazenados do SQL Server como serviços e métodos SOAP-
Based.

2
Gerenciando de HTTP ENDPOINT

Um HTTP endpoint é uma interface através da qual os clientes baseados em HTTP enviam
consultas ao servidor. Você deve usar o comando CREATE ENDPOINT Instrução T-SQL para
configurar a instância do SQL Server para atender solicitações HTTP nativamente antes que
você possa enviar uma solicitação HTTP / SOAP nativa para o servidor.

HTTP endpoint do SQL Server pode ouvir e receber solicitações em qualquer porta válida,
incluindo a porta TCP 80, a mesma porta usada pelo serviço IIS World Wide Web
Publishing. Cada URL que é usado para um terminal HTTP ou pelo IIS é registrado no sistema
operacional Windows através do processo do listener HTTP do sistema (http.sys).

A Instrução CREATE ENDPOINT

Como a palavras-chave sugere, A instrução CREATE ENDPOINT permite criar endpoints. Formato
usado para criar HTTP endpoints que expõe seus procedimentos armazenados e funções
definidas pelo usuário como métodos de serviço web SOAP:

IF EXISTS (SELECT NAME FROM sys.http_endpoints WHERE NAME =


N'PlayerRecord_EP')

DROP ENDPOINT PlayerRecord_EP

GO

CREATE ENDPOINT [PlayerRecord_EP]

STATE=STARTED

AS HTTP

PATH=N'/PlayerName'

2
, PORTS = (CLEAR)

, AUTHENTICATION = (INTEGRATED)

, SITE=N'localhost'

, CLEAR_PORT = 8000

FOR SOAP

WEBMETHOD 'PlayerList'

(NAME=N'[SSISExperiments]. [dbo]. [usp_SelectPlayerRecords]')

, BATCHES=DISABLED

, WSDL=DEFAULT

, DATABASE=N'SSISExperiments'

, NAMESPACE=N'http://SSISExperiments/Players'

GO

A seção AS HTTP identifica os caminhos, portas e métodos de autenticação. PATH sempre


começa com uma barra (/) e identifica o caminho sob a raiz. Neste exemplo, estamos criando um
terminal com um caminho '/ PlayerName' que está disponível no servidor local. Portanto, o
caminho completo será http: // localhost: 8000 / PlayerName. O PORTS é definido
como CLEAR indica que estamos usando HTTP e a porta 80.
A seção FOR SOAP identifica os métodos da web, WSDL e a base de dados. WEBMETHOD é
usado para identificar o(s) procedimento(s) armazenado(s) chamado(s) através do ENDPOINT.

2
A execução do script criará o terminal nos Objetos do Servidor

Para eliminar o endpoint, emitimos o comando: DROP ENDPOINT PlayerRecord_EP e será


descartado
Para modificar ou parar o endpoint, emitimos o comando: ALTER ENDPOINT
ALTER ENDPOINT PlayerRecord_EP
STATE = STOPPED;

Alterando um ENDPOINT

2
O ALTER ENDPOINT A instrução permite alterar um endpoint existente; podendo adicionar
métodos ao endpoint, alterar ou descartar os métodos existentes do endpoint e alterar as propriedades
do endpoint.

Na instrução ALTER ENDPOINT, especifica-se apenas as propriedades que deseja atualizar, as


propriedades não especificadas permanecerão inalteradas.
Os endpoints podem ser alterados pelos membros do sysadmin, pelo proprietário do terminal ou
pelos usuários com permissão ALTER ANY ENDPOINT ou ALTER ON ENDPOINT para o
terminal específico. A instrução ALTER AUTHORIZATION altera o proprietário de um nó de
endpoint existente.
A maioria das cláusulas e argumentos da instrução ALTER ENDPOINT é igual à
da instrução CREATE ENDPOINT.
A sintaxe da instrução ALTER ENDPOINT é:
ALTER ENDPOINT PlayerRecord_EP
[ AFFINITY = {NONE | <64bit_integer> | ADMIN}]
[ STATE = {STARTED | STOPPED | DISABLED}]
AS {TCP | HTTP} (
<protocol_specific_items>)
FOR {SOAP | TSQL | SERVICE_BROKER | DATABASE_MIRRORING} (
<language_specific_items>)

where:

AFFINITY

Especifica a afinidade do endpoint.

STATE

O argumento STATE é o mesmo descrito para a instrução CREATE ENDPOINT, se o


estado for alterado para DISABLED, o servidor precisará ser reiniciado para que a
alteração entre em vigor.

2
Drop ENDPOINT

O DROP ENDPOINT A instrução remove um endpoint existente. Os endpoint podem ser


eliminados pelos membros do sysadmin, pelo proprietário do terminal ou pelos usuários
com permissão CONTROL no endpoint.

A sintaxe da instrução DROP ENDPOINT é:


DROP ENDPOINT PlayerRecord

where:

endPointName

O nome do endpoint a remover.

Autenticação do ENDPOINT

Cada ENDPOINT está configurado para uma autenticação, permissões de tipo e acesso que permitem
que os usuários se conectem ao ENDPOINT.
Um usuário deve ser um usuário autenticado do Windows um usuário confiável do Windows ou
uma conta de membro no computador local para acessar um terminal ENDPOINT. A
autenticação anônima em um ENDPOINT não é suportada.
A cláusula AUTHENTICATION nas instruções CREATE ENDPOINT e ALTER
ENDPOINT especifica como a autenticação do ENDPOINT é executada.

BASIC

 Um mecanismo de autenticação HTTP 1.1 que usa um cabeçalho de autenticação


contendo um nome de usuário e uma senha Base64-encoded, separados por dois pontos
(:). As credenciais devem ser mapeadas para uma conta válida do Windows. Porque a
codificação Base64 pode ser facilmente decodificada, o SQL Server exige que uma porta
SSL (Secure Sockets Layer) seja usada para a conexão HTTP.

2
A autenticação BASIC não é permitida para endpoints em que
o valor PORTS é CLEAR.

DIGEST

 Um mecanismo de autenticação HTTP 1.1 que consiste em um nome de usuário e senha


com hash no algoritmo MD5. O servidor tem acesso à senha real ou a um hash MD5 da
senha, permitindo que o cliente prove a senha sem realmente enviá-la ao servidor. As
credenciais devem ser mapeadas para uma conta de domínio válida do Windows. Os
usuários locais não são suportados para autenticação Digest.

NTLM

 O mecanismo de autenticação suportado pelo Windows 9x e Windows NT 4.0. O NTLM


é um protocolo de desafio/resposta criptografado que usa um nome de domínio, nome de
usuário e senha de mão única.

KERBEROS

 Um mecanismo de autenticação mútua padrão da Internet entre cliente e servidor,


projetado para uso em uma rede aberta ou não segura. Os clientes obtêm um tícket de
autenticação de um KDC (Kerberos Key Distribution Center) e apresentam esse tícket
aos servidores quando as conexões são estabelecidas. Para usar a autenticação Kerberos,
você deve registrar um nome principal de serviço (SPN) na conta do SQL Server em que
está sendo executada, usando a ferramenta SetSPN.exe.

INTEGRATED

 O endpoint pode responder a desafios do tipo de autenticação Kerberos ou NTLM. O


servidor tenta autenticar o cliente usando o tipo de autenticação que o cliente usa na
solicitação de autenticação.

2
O SOAP HTTP nativo pode usar windows users e group accounts ou SQL Server logins como objetos de
segurança. Pode-se controlar isto por meio da instrução LOGIN_TYPE nos argumentos SOAP
language-specific da instrução CREATE ENDPOINT ou ALTER ENDPOINT.

Gerenciamento de permissões em ENDPOINT

As permissões do endpoint especificam se um login pode criar, alterar, conectar ou transferir a


propriedade de um endpoint. As solicitações de endpoint podem ser executadas por membros do
sysadmin, pelo proprietário do endpoint ou por usuários com permissão CONNECT no endpoint.

Todas as instruções T-SQL que controlam as permissões devem ser executadas no banco de
dados master.

Os protótipos usam os seguintes argumentos: 

server_principal

Ao qual a permissão é concedida, negada ou revogada. server_principal é:

 A SQL Server login

 A SQL Server login created from a Windows login

 A SQL Server login mapped to a certificate

 A SQL Server login mapped to an asymmetric key

endPointName

O nome do endPoin para o qual a permissão é concedida.

Criar permissão

Uma permissão no escopo do servidor controla se um login pode criar um objeto de endpoint. A
sintaxe é:

2
{GRANT | DENY | REVOKE} CREATE ENDPOINT TO server_principal

Alterar permissão

Pode-se atribuir permissões para um usuário alterar um endpoint de três maneiras diferentes:

 No escopo do servidor. A concessão dessa permissão permite que o login altere ou


descarte qualquer endpoint no servidor:

{GRANT | DENY | REVOKE} ALTER ANY ENDPOINT TO server_principal

 Para um endpoint específico. A concessão dessa permissão permite que o login altere ou
solte um endpoint específico no servidor:
{GRANT | DENY | REVOKE} ALTER ON ENDPOINT:: endPointName TO server_principal

Controle de Permissão

Essa permissão permite alterar ou descartar um endpoint específico no servidor e transfira sua
propriedade:

{GRANT | DENY | REVOKE} CONTROL ON ENDPOINT::endPointName TO


server_principal

Permissão de conexão

Essa permissão controla se um login pode executar solicitações em um endpoint específico:

{GRANT | DENY | REVOKE} CONNECT ON ENDPOINT::endPointName TO


server_principal

Permissão de propriedade

2
Essa permissão controla se um usuário especificado na cláusula AUTHORIZATION de
uma instrução CREATE ENDPOINT ou ALTER ENDPOINT pode se apropriar de um endpoint:

{GRANT | DENY | REVOKE} TAKE OWNERSHIP ON ENDPOINT::endPointName TO


server_principal>

Você também pode gostar