На дистрибьюторе существуют еще два вида процесса: распространение и очистка. Задача распространения создается для каждой пары "тиражируемая база/подписавшаяся база", а задача очистки - для пары "издатель/подписчик". Распространение (distribution task) применяет прочитанные из базы данных распространения sql-команды к базе данных подписчика. Процесс очистки (cleanup task) уничтожает все выполненные работы (т. е. транзакции) из базы данных распространения через некоторый настраиваемый интервал после того, как они были доведены до подписчика. Несмотря на то что организация всего процесса тиражирования может быть записана в кодах при помощи вызовов специальных хранимых процедур, эта черта используется на практике крайне редко и главным образом в целях отладки. В обычных ситуациях настройка и управление тиражированием осуществляются из графической среды SQL Enterprise Manager и планировщика задач SQL Executive.
Соединение дистрибьютора с издателем происходит на основе DB-Library, а с подписчиком - через ODBC. Таким образом, в качестве подписчиков MS SQL Server может выступать широкий спектр ODBC-достижимых ресурсов, к которым, например, относятся другой Access, Sybase, Oracle, DB2 и т. д. Тиражирование в MS SQL Server основано на интегрированном режиме безопасности (см. Безопасность), следовательно, между дистрибьютором и подписчиком должны быть установлены доверительные соединения (trusted connections) с использованием поименованных каналов (named pipes) или мультипротокола. Если серверы находятся в разных доменах, между доменами должны быть установлены двусторонние доверительные отношения. В случае небольших объемов тиражируемых данных издатель часто совмещает с дистрибьютором на одном MS SQL Server.
MS SQL Server обладает обширными возможностями настройки процесса тиражирования. Отметим, что для каждой статьи имеется возможность назначить к тиражированию только необходимые типы транзакций. В зависимости от административного акцента MS SQL Server позволяет организовать подписку на стороне издателя либо на стороне подписчика. Первый вид подписки (push subscription) используется при централизованном распространении, когда подписки создаются "выталкиванием" статей на те или иные серверы-подписчики, которые могут не иметь своих администраторов. Второй вид (pull subscription) предполагает известную автономию сервера-подписчика, администратор которого определяет, какие публикации ему принимать. По умолчанию все публикации создаются со статусом безопасности "неограничено", они видны и на них могут подписаться любые зарегистрированные серверы подписки. Ограниченная публикация может быть выписана только теми серверами, которые имеют на это соответствующие права.
Безопасность доступа. MS SQL Server использует в своей работе сервисы безопасности Windows NT. Напомним, что Windows NT на сегодня сертифицирована по классам безопасности С2/Е3. MS SQL Server может быть настроен на работу в одном из трех режимах безопасности. Интегрированный режим предусматривает использование механизмов аутентификации Windows NT для обеспечения безопасности всех пользовательских соединений. В этом случае к серверу разрешаются только трастовые, или аутентифицирующие, соединения (named pipes и multiprotocol). Стандартный режим безопасности предполагает, что на MS SQL Server будут заводиться самостоятельные login id и соответствующие им пароли. Смешанный режим использует интегрированную модель при установлении соединений по поименованным каналам или мультипротоколу и стандартную модель во всех остальных случаях.
MS SQL Server обеспечивает многоуровневую проверку привилегий при загрузке на сервер. Сначала идентифицируются права пользователя на установление соединения с выбранным сервером и выполнение административных функций: создание устройств и баз данных, назначение прав другим пользователям, изменение параметров настройки сервера и т.д. На уровне базы данных каждый пользователь, загрузившийся на сервер, может иметь имя пользователя (username) базы и права на доступ к объектам внутри нее. Имеется возможность отобразить нескольких login id на одного пользователя базы данных, а также объединять пользователей в группы для удобства администрирования и назначения сходных привилегий. По отношению к объектам базы данных пользователю могут быть назначены права на выполнение различных операций над ними: чтение, добавление, удаление, изменение, декларативная ссылочная целостность (DRI), выполнение хранимых процедур, а также права на доступ к отдельным полям. Наконец, можно вообще запретить пользователю непосредственный доступ к данным, оставив за ним лишь права на выполнение хранимых процедур, в которых будет прописан весь сценарий его доступа к базе.
MS SQL Server в Internet/Intranet-приложениях. Времена статических страниц объявлений и рекламы миновали - бурное развитие бизнеса в Internet предполагает непосредственное участие клиента в совершении сделок. Говоря об использовании MS SQL Server при построении активных Internet/intranet-приложений, мы снова должны обратиться к преимуществам его тесной интеграции со всеми продуктами семейства Microsoft BackOffice. На этот раз речь пойдет об Internet Information Server (IIS).
Помимо исполнения CGI-скриптов MS IIS предоставляет разработчикам возможность создания с помощью соответствующего прикладного программного интерфейса (ISAPI) приложений в виде динамических библиотек, запуск которых происходит в ответ на команду или выбор линка на Web-странице. В отличие от CGI, где каждый скрипт исполняется как иной, нежели Web-сервер, процесс, что быстро "съедает" ресурсы даже достаточно мощной машины при большом количестве заходов на сервер, ISAPI-приложение выполняется в адресном пространстве Web-сервера, что, естественно, повышает скорость работы и существенно экономит машинные ресурсы. В зависимости от сложности сайта и приложений, dll могут быть предзагружены одновременно с запуском сервера, либо подгружаться/выгружаться из памяти по мере необходимости. К наиболее известным средствам разработки приложений на основе ISAPI относятся входящий в состав MS IIS Internet Database Connector (IDC), а также свободно распространяемый dbWeb.
Microsoft dbWeb представляет собой шлюз между 32-битными ODBC-ресурсами и MS IIS. dbWeb предусматривает создавание схемы, содержащей описание данных и связанных с ними Web-страниц. Он поддерживает исполнение запросов в реальном режиме времени на основе "pull"-модели публикации, позволяя тем самым создавать активные Web-страницы. Microsoft dbWeb структурно состоит из двух основных компонентов: dbWeb Service и dbWeb Administrator. dbWeb Service является типичным ISAPI-приложением, которое обрабатывает пользовательские запросы, направляемые посетителем страницы через броузер, и управляет соединениями между броузером, ODBC-ресурсом и IIS. К функциям dbWeb Administrator относится создание HTML-страниц, содержащих результаты выполнения запросов на основе уже упоминавшихся схем, с помощью которых осуществляется управление публикуемыми данными.
IDC входит в состав MS IIS. С помощью вызовов функций ODBC API он обеспечивает прямую связь между полями HTML-формы и соответствующим ODBC-достижимым источником данных. Для доступа к данным и публикации на Web IDC использует файлы двух типов - .idc и .htx. Файл с расширением idc (см. пример) содержит всю необходимую информацию о соединении с источником данных, текст запроса, а также ссылку на соответствующий htx-файл. Файл с расширением htx (см. пример) служит шаблоном страницы, на которой будут опубликованы данные из базы, а также элементы оформления в виде статического текста, графики, видео и т. п.
SQL Web Assistant, входящий в состав MS SQL Server 6.5, в отличие от двух только что рассмотренных инструментов, не является ISAPI-приложением и работает только с MS SQL Server . Web Assistant имеет интерфейс мастера (wizard), благодаря которому, администратор может сэкономить время по выполнению рутинного HTML-кодирования и получить готовую (в HTML-кодах) страницу, содержащую результаты опубликования произвольного запроса к базе. Полученная страница не является активной в строгом смысле этого слова, так как публикуется при помощи push-метода, т. е. обновление происходит по инициативе сервера и не допускает обновления со стороны клиента. Однако сервер может производить обновление (перегенерацию) страницы на триггерной основе или на основе расписаний задач под управлением SQL Executive.
Active Data Objects (ADO) в достаточно грубом приближении служат VB-интерфейсом к OLE DB. Их роль видится особенно важной в развитии компонентного подхода и технологий универсального доступа к данным. Активные серверные страницы представляют собой инструмент для эффективной разработки серверных Web-приложений, интегрирующих в своем составе HTML-код, VBScript и компоненты ActiveX. С их помощью в уже существующие наработки легко могут быть встроены фрагменты кода на VBScript или JavaScript, а также вызовы соответствующих объектов ActiveX.