Рассмотрим параметры подробнее: О role— имя роли приложения, которое определено в базе данных;
О password— пароль, который приложение должно передать серверу для активизации роли приложения;
О encrypt_styl e — применяемая схема шифрования паролей. Данный параметр может иметь два значения: попе (шифрование не применяется) и odbc (шифрование с применением функции ODBC encrypt).
Когда роль приложения активизируется, все права доступа, установленные в пределах сеанса для пользователя, групп или ролей, теряются до окончания работы приложения. Соединение получает права, установленные для роли приложения в базе данных, в которой эта роль существует. Временное «забывание» прав доступа, присвоенных установившему соединение пользователю, требуется для устранения конфликтов доступа. В противном случае, если пользователю запрещено чтение данных, а приложению необходимо считать данные, доступ был бы отклонен, так как запрещение доступа имеет преимущества над предоставлением доступа.
Поскольку роль приложения имеет права только в той базе данных, в которой она создана, а все разрешения для учетных записей, групп и ролей, к которым принадлежит пользователь, теряются, то доступ к другим базам данных возможен только под гостевым именем guest. Следовательно, если имя guest в базе данных не существует, то соединение не сможет получить доступ к данным. Если же имя guest не удалено из базы данных, соединение сможет получить доступ к объектам базы только в том случае, если разрешения явно выданы для пользователя guest. Перед установлением соединения с использованием роли приложения пользователю сначала нужно получить доступ к SQL Server. Для этого допустимы оба режима аутентификации пользователей.
Если приложение спроектировано для выполнения различных задач с использованием разных прав доступа, необходимо создать отдельную роль для каждой выполняемой задачи. Приложение должно само позаботиться о переключении ролей.
Защита данных
Как бы хорошо ни была спланирована система безопасности SQL Server 2000, остается возможность копирования файлов с данными и просмотра их на другом компьютере. Кроме того, с использованием специальных устройств данные могут быть перехвачены при передаче их по сети. Необходимо продумать средства физической защиты данных. Учтите, что данные в файлах базы данных хранятся в открытой форме, то есть их можно просмотреть в текстовом редакторе. Конечно, они не будут структурированы, но все же часть информации можно будет прочитать.
Шифрование данных
Шифрование — это метод, используемый SQL Server для изменения данных до нечитабельной формы. Шифрование гарантирует, что ценная конфиденциальная информация не будет просмотрена кем бы то ни было. Вы можете скопировать данные, но ничего не сможете с ними сделать. Для просмотра данных авто-ризированными пользователями используется дешифрование. . SQL Server позволяет шифровать следующие данные:
• любые данные, передаваемые между сервером и клиентом по сети;
• пароли учетных записей SQL Server или ролей приложения;
• код, использованный для создания объектов базы данных (хранимых процедур,
представлений, триггеров и т. д.).
Пароли учетных записей и ролей приложения всегда сохраняются в системных таблицах SQL Server в зашифрованной форме. Это предохраняет их от просмотра любым пользователем, включая администратора. Кроме того, пароль роли приложения может быть зашифрован перед отправкой его на сервер.
Если код триггера, представления или хранимой процедуры содержит данные или алгоритм, которые необходимо сохранить в тайне, используйте шифрование этих объектов.
Шифрование данных при передаче их по сети гарантирует, что никакое приложение или устройство не сможет их прочитать, даже если и перехватит. Шифрованное соединение позволяет также предотвратить перехват паролей пользователей.
Если вы хотите шифровать данные при передаче их по сети, необходимо использовать сетевую библиотеку Multiprotocol Net-Library.