- •1.2.2Типы представлений — до 5 мин.
- •1.2.3Создание представлений — до 25 мин.
- •1.2.4Использование представлений — до 10 мин.
- •1.2.5Изменение и удаление представлений — до 5 мин.
- •1.2.6Индексированные представления — до 5 мин.
- •2.2.2Создание хранимых процедур — до 15 мин.
- •2.2.3Использование параметров — до 15 мин.
- •2.2.4Использование локальных переменных внутри хранимой процедуры — до 15 мин.
- •2.2.6Использование select для возвращаемых значений — до 10 мин.
- •2.2.5Использование return для возвращаемых значений — до 10 мин.
- •2.2.7Управление хранимыми процедурами с помощью t-sql — до 10 мин.
- •3.2.2Когда использовать триггеры —до 10 мин.
- •3.2.3Создание триггеров — до 10 мин.
- •3.2.4Создание триггера типа delete — до 10 мин.
- •3.2.5Создание триггера типа insert — до 5 мин.
- •3.2.6Создание триггера типа update — до 10 мин.
- •3.2.7Создание триггера instead of — до 10 мин.
- •3.2.8Использование триггеров after — до 5 мин.
- •3.2.9Использование вложенных триггеров — до 10 мин.
- •3.2.10Управление триггерами с помощью операторов t-sql — до 5 мин.
- •4.2.2Уровни изолированности — до 10 мин.
- •4.2.3Поведение параллельных транзакций — до 10 мин.
- •4.2.4Режимы транзакций — до 20 мин.
- •4.2.5Вложенные транзакции — до 15 мин.
- •4.2.6Откаты транзакций — до 15 мин.
- •4.2.7Точки сохранения — до 10 мин.
- •5.2.2Уровни блокировок — до 15 мин.
- •5.2.3Режимы блокировки — до 20 мин.
- •5.2.4Блокирование и взаимоблокировки — до 20 мин.
- •5.2.5Подсказки блокировки — до 20 мин.
- •6.2.2Логическая оптимизация запросов — до 20 мин.
- •6.2.3Оптимизация плана исполнения запроса — до 15 мин.
- •6.2.4Подсказки оптимизатору запросов — до 15 мин.
- •6.2.5Оптимизация с использованием sql Server 2000 Index Tuning Wizard и sql Server 2005 Database Tuning Advisor — до 30 мин.
- •7.2.2Режимы аутентификации — до 15 мин.
- •7.2.3Учетные записи и пользователи — до 20 мин.
- •7.2.4Администрирование полномочий доступа к базам данных — до 20 мин.
- •7.2.5Администрирование ролей баз данных — до 10 мин.
- •7.2.6Делегирование учетной записи безопасности — до 15 мин.
- •8.2.2Внедрение sql кода (sql Injection) — до 20 мин.
- •8.2.3Защита sql Server в Интернет — до 20 мин.
- •8.2.4Пример организации системы безопасности приложений — до 40 мин.
- •9.2.2Журнальное протоколирование в sql Server — до 20 мин.
- •9.2.3Контрольные точки — до 15 мин.
- •9.2.4Методы резервного копирования — до 25 мин.
- •10.2.2Слежение за резервным копированием — до 10 мин.
- •10.2.3Планирование резервного копирования — до 25 мин.
7.2.2Режимы аутентификации — до 15 мин.
Аутентификация — это процесс проверки права пользователя на доступ к тому или иному ресурсу. Чаще всего аутентификация осуществляется с помощью ввода имени и пароля.
Для доступа к SQL Server можно использовать два режима аутентификации: режим аутентификации Windows (Windows Authentication) и режим смешанной аутентификации (Mixed Mode Authentication). В первом случае аутентификация пользователя осуществляется операционной системой Windows. Затем SQL Server использует аутентификацию этой операционной системы, чтобы определить, какие пользовательские полномочия можно применять в каждом случае. В смешанном режиме аутентификацию пользователя осуществляют как Windows NT/2000, так и SQL Server. Для доступа к SQL Server вы должны в любом случае сначала осуществить вход по учетной записи Windows NT/2000, поэтому при выборе режима аутентификации вы должны решить, нужно ли вам использовать аутентификацию SQL Server в дополнение к аутентификации Windows.
Как уже говорилось, при аутентификации с помощью Windows обеспечение безопасности для SQL Server осуществляет с помощью учетных записей система Windows NT/2000. При подсоединении пользователя к Windows NT/2000 эта система проверяет подлинность пользователя по его учетной записи. SQL Server "убеждается" в том, что пользователь был проверен системой Windows NT/2000, и разрешает доступ, основываясь на этой аутентификации. Для этого используется интеграция процесса проверки login-записей SQL Server с процессом проверки учетных записей в Windows. Атрибуты безопасности на уровне сети проверяются с помощью сложного процесса шифрования, обеспечиваемого в Windows NT/2000. После аутентификации операционной системой в этом режиме дальнейшая аутентификация для доступа к SQL Server уже не требуется. Для доступа к SQL Server вы должны только указать свой пароль доступа к Windows NT/2000.
Режим аутентификации Windows считается более надежным методом, чем режим смешанной аутентификации, за счет использования дополнительных средств безопасности. Это защищенная проверка и шифрование паролей, аудит, поддержка сроков действия паролей, минимальная длина паролей и автоматическое блокирование учетных записей после определенного количества безуспешных попыток входа.
В режиме смешанной аутентификации пользователи могут осуществлять доступ к SQL Server с помощью аутентификации в Windows или аутентификации в SQL Server. При соединении, осуществляемом в этом режиме из незащищенной системы, SQL Server аутентифицирует данные входа, проверяя, имеется ли учетная login-запись для пользователя, запрашивающего вход. SQL Server осуществляет аутентификацию по этой учетной login-записи путем сравнения имени и пароля пользователя, подсоединяющегося к SQL Server, с информацией учетной login-записи, хранящейся в базе данных. Если для этого пользователя не создана учетная login-запись или пользователь неверно указал имя или пароль, то SQL Server не разрешает доступ.
Режим аутентификации Windows недоступен, если SQL Server работает под управлением Windows 95/98, поэтому вы должны применять на этих платформах аутентификацию SQL Server (указывая режим смешанной аутентификации). Кроме того аутентификация SQL Server требуется для Web-приложений (с помощью Microsoft Internet Information Server), поскольку пользователи этих приложений, скорее всего, находятся не в том же домене, где сервер, и поэтому для них нельзя использовать систему безопасности Windows. Для других приложений также может потребоваться аутентификация SQL Server: некоторые разработчики предпочитают использовать для своих приложений систему безопасности SQL Server, поскольку это упрощает обеспечение безопасности их приложений. Если приложения используют систему безопасности SQL Server (в доверенной сети), то разработчики этих приложений не обязаны обеспечивать аутентификацию внутри самих приложений, что упрощает их работу.
Аутентификация с помощью SQL Server предназначена главным образом для клиентских приложений, функционирующих на платформах, отличных от Windows. Этот способ считается менее безопасным, но в SQL Server 2005 он поддерживает шифрование всех сообщений, которыми обмениваются клиент и сервер, в том числе с помощью сертификатов, сгенерированных сервером. Шифрование также повышает надежность этого способа аутентификации. Для учетной записи SQL Server можно указать такой параметр, как необходимость сменить пароль при первом соединении с сервером. Если SQL Server 2005 работает под управлением Windows Server 2003, можно воспользоваться такими параметрами учетной записи, как проверка срока действия пароля и локальная парольная политика Windows.
Отметим такую мелочь, как обязательное требование непустого пароля пользователя sa — как ни странно, пустой пароль данной учетной записи является весьма распространенным проявлением беспечности администраторов баз данных (и самой любимой лазейкой для похитителей корпоративных данных).
Вот уже не первый десяток лет принцип распределения прав доступа к объектам баз данных в большинстве серверных СУБД основан на наличии у каждого объекта базы данных пользователя-владельца, который может предоставлять другим пользователям права доступа к объектам базы данных. При этом набор объектов, принадлежащих одному и тому же пользователю, называется схемой. Данный способ владения объектами создавал определенные неудобства при сопровождении приложений, использующих базы данных. Так, при увольнении сотрудника, создавшего объекты, используемые многими пользователями, и удалении соответствующей учетной записи приходилось вносить изменения в серверный код (а нередко и в код клиентского приложения). Понимание возможности возникновения этих проблем привело к распространению небезопасных, но простых в применении способов управления учетными записями пользователей. Вплоть до хранения их имен и паролей в обычных таблицах, что резко повышало угрозу несанкционированного доступа к данным и приложениям.
В SQL Server 2005 концепция ролей расширена: эта СУБД позволяет полностью отделить пользователя от схем и объектов базы данных. Теперь объекты базы данных принадлежат не пользователю, а схеме, не имеющей никакого отношения ни к каким учетным записям и тем более к административным привилегиям. Таким образом, схема становится механизмом группировки объектов, упрощающим предоставление пользователям прав на доступ к объектам.
Роли
Для упрощения управления правами доступа в большинстве серверных СУБД применяется механизм ролей — наборов прав доступа к объектам базы данных, присваиваемых некоторой совокупности пользователей. При использовании ролей управление распределением прав доступа к объектам между пользователями, выполняющими одинаковые функции и применяющими одни и те же приложения, существенно упрощается: создание роли и однократное назначение ей соответствующих прав осуществляется намного быстрее, нежели определение прав доступа каждого пользователя к каждому объекту. SQL Server 2005 позволяет создавать так называемые вложенные роли, то есть присваивать одной роли другую со всеми ее правами. Это упрощает управление не только правами пользователей, но и самими ролями, создавая, к примеру, сходные между собой группы ролей.
SQL Server 2005 также поддерживает так называемые роли для приложений (application roles), которые могут использоваться для ограничения доступа к объектам базы данных в тех случаях, когда пользователи обращаются к данным с помощью конкретных приложений. В отличие от обычных ролей, роли для приложений, как правило, неактивны и не могут быть присвоены пользователям. Их применение оказывается удобным в том случае, когда требования безопасности едины для всех пользователей, при этом не требуется аудит или иная регистрация деятельности конкретных пользователей в базе данных.
