Резервирование пространств имен URL-адресов при помощи Http.sys
Можно явно зарезервировать пространство имен URL-адресов в HTTP.SYS, а затем использовать это пространство имен для создания конечных точек HTTP. Для этого необходимо понимание концепции явного и неявного резервирования пространства имен, а также понимание применяемого в SQL Server 2005 способа регистрации конечной точки HTTP-адресов в HTTP.SYS.
Сравнение явного и неявного резервирования пространства имен
Когда пользователь выполняет инструкцию CREATE ENDPOINT, например, подобную следующей:
CREATE ENDPOINT sql_endpoint
STATE = STARTED
AS HTTP (
PATH = '/sql/AdvWorks',
AUTHENTICATION = (INTEGRATED ),
PORTS = ( CLEAR ),
SITE = 'MyServer'
)
FOR SOAP (
...
)
Go
Пространство имен http://MyServer:80/sql/AdvWorks неявно резервируется в HTTP.SYS. Это означает, что, пока работает приложение на базе SQL Server, любые запросы HTTP к этой конечной точке перенаправляются в экземпляр SQL Server. Однако это пространство имен может быть занято другими приложениями, если экземпляр SQL Server не функционирует.
При явном резервировании пространство имен резервируется специально для SQL Server, и все запросы HTTP к этой конечной точке перенаправляются в экземпляр SQL Server. Дополнительные сведения см. в разделе Резервирование пространства имен HTTP.
Примечание. |
---|
Visual Studio 2005 и Http.sys следуют различным правилам стандартизации URL-адресов. Например для Http.sys допускаются включающие подстановочные знаки, например «/SQL/Mypath/...», указанные как часть настройки PATH при создании конечной точки. Однако Visual Studio 2005 в соответствие с более строгими правилами стандартизации обрезает часть передаваемых данных, содержащую подстановочные знаки «...», прежде чем передать URL-адрес. |
Как SQL Server регистрирует конечную точку
Для управления конечными точками HTTP используются инструкции CREATE ENDPOINT, ALTER ENDPOINT и DROP ENDPOINT. Необходимо иметь соответствующие разрешения для создания, изменения и удаления конечной точки. Это описывается в разделе GRANT, предоставление разрешений на конечные точки (Transact-SQL).
При выполнении инструкции CREATE ENDPOINT для создания конечной точки SQL Server 2005 запускает инструкцию и регистрирует конечную точку в HTTP.SYS. В зависимости от контекста, в котором задана инструкция конечной точки, SQL Server 2005 олицетворяет вызывающую сторону следующим образом:
- Если выполнять инструкцию в контексте учетной записи Windows, SQL Server 2005 олицетворяет вызывающую сторону для регистрации конечной точки в HTTP.SYS.
- Если инструкция выполняется в контексте учетной записи SQL Server, например sa или какого-нибудь другого имени входа SQL Server, то SQL Server 2005 олицетворяет вызывающую сторону с использованием учетной записи служб SQL Service, указанной при установке SQL Server, чтобы зарегистрировать конечную точку в HTTP.SYS.
Как учетная запись Windows, так и учетная запись SQL Server, которую олицетворяет SQL Server 2005, должны иметь локальные права доступа администратора Windows для успешной регистрации конечной точки HTTP.
Проверка резервирования пространств имен HTTP
Чтобы определить, какие пространства имен зарезервированы в HTTP.SYS, необходимо запустить программу настройки конфигурации HTTP, Httpcfg.exe, из командной строки.
Примечание. |
---|
Программа Httpcfg.exe устанавливается в составе инструментов Windows Server Support. Дополнительные сведения см. в разделе Настройка драйвера протокола HTTP, работающего в режиме ядра (Http.sys). |
В нижеследующем примере показано, как использовать программу Httpcfg.exe, чтобы получить список зарезервированных пространств имен HTTP:
httpcfg query urlacl
Эта команда отображает список всех существующих зарезервированных пространств имен, возвращая пространство имен URL-адресов и учетную запись, под которой оно было зарезервировано.
Ниже приведен типичный образец выходных данных для этой команды:
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)
-----------------------------------------------------------------
Примечание. |
---|
Эта процедура может быть выполнена только членами роли sysadmin и требует, чтобы учетная запись олицетворения имела административные права доступа на компьютере. |
См. также
Справочник
Резервирование пространства имен HTTP
Удаление резервирования пространства имен HTTP