
- •Хранимые процедуры Управление процессом компиляции хранимых процедур
- •Управление автоматическим выполнением хранимых процедур
- •Использование индексов
- •Планирование использования индексов
- •Создание индексов средствами t-sql
- •Использование курсоров
- •Динамические курсоры
- •Последовательные курсоры
- •Ключевые курсоры
- •Управление курсорами.
- •Работа с триггерами
- •Пример триггера
- •Система безопасности sql Server
- •Общие правила разграничения доступа
- •Аутентификация и интеграция с доменом Windows
- •Режим аутентификации Wondows
- •Режим аутентификации sql Server
- •Права доступа
- •Компоненты системы безопасности sql Server
- •Создание пользователей
- •Роли приложения
- •Защита данных в sql Server
- •Управление правами доступа к объектам базы данных средствами t-sql
- •Репликация данных
- •Понятие репликации данных
- •Издатель
- •Подписчик
- •Дистрибьютор
- •Механизмы репликации
Система безопасности sql Server
Каждое предприятие имеет определённую группу людей, которая обеспечивает принятие решений и контроль за их исполнением.
Чёткое разграничение сфер деятельности помогает более эффективно контролировать работу персонала, отслеживать выполненные операции и осуществлять перспективное планирование.
Некоторая информация может быть доступна всему персоналу и, возможно, даже клиентам. Другая часть информации не должна выходить за рамки отдела. Некоторой информацией должны владеть только люди, непосредственно с ней работающие. Примером такой информации могут служить различные ноу-хау, а так же оригинальные разработки и технологии, которые компания стремится защитить от конкурентов. Выход такой информации за пределы компании может принести большие убытки.
Кроме кражи информации возможно её повреждение вследствие ошибки оператора или неправильно написанного приложения. Последствия подобных действий могут повлечь серьёзные финансовые последствия. Например, если данные о клиентах будут потеряны, придётся заново собирать нужную информацию, а это потеря времени, денег, а конкуренты, воспользовавшись этой ситуацией, могут захватить рынок.
В последнее время всё больше предприятий отказывается от использования бумажных носителей информации, и переходят к компьютерной обработке документов.
Система хранения информации должна быть максимально защищена, как от случайного, так и от преднамеренного повреждения или искажения информации. При создании базы данных, разработчик должен сделать так, чтобы любой пользователь не мог сделать что-либо, не имея на это соответствующих прав. Не следует надеяться на компетентность пользователя и его порядочность, поскольку возможно изменение или удаление данных не по злому умыслу, а из-за невнимательности или по ошибке. Система по возможности должна препятствовать подобным действиям.
Общие правила разграничения доступа
Если база данных предназначена для использования более чем одним человеком, необходимо позаботиться о разграничении прав доступа.
В процессе планирования работы системы безопасности следует определить, какие данные могут просматривать те или иные пользователи, и какие действия с данными им разрешено при этом выполнять. После проектирования логической структуры базы данных, связей между таблицами, ограничений целостности и других структур, необходимо определить круг пользователей, которые будут иметь доступ к базе данных. Чтобы разрешить этим пользователям обращаться к серверу, необходимо создать для них учётные записи SQL Server, либо предоставить им доступ с использованием учётных записей в домене, если используется система безопасности Windows. Разрешение доступа к серверу не даёт автоматически доступа к базе данных и её объектам.
Второй этап планирования системы безопасности заключается в определении действий, которые может выполнять в базе данных конкретный пользователь. Полный доступ к базам данных и всем их объектам имеет администратор, который является своего рода хозяином сервера, которому позволено всё. Второй человек после администратора – это владелец объекта. При создании любого объекта в базе данных, ему назначается владелец, который может назначать права доступа к этому объекту, модифицировать его и удалять. Третья категория пользователей имеет права доступа, выданные им администратором или владельцем объекта. Необходимо тщательно планировать права, выдаваемые пользователям в соответствии с занимаемой должностью и необходимостью выполнения конкретных действий. Например, совсем не обязательно назначать права на изменение данных в таблице, содержащей сведения о зарплате сотрудников директору компании, и, тем более, не следует предоставлять подобные права обычному сотруднику. При этом любому сотруднику можно, например, выдать права на добавление новых клиентов. Неправильный ввод подобной информации не нанесёт ощутимого ущерба компании, но, если к правам добавления добавить возможность изменения и удаления подобных данных, то злоумышленник, завладевший паролем, может нанести существенные финансовые потери. Кроме того, необходимо учитывать ущерб от работы пользователей, не сильно задумывающихся о последствиях своих действий.
Следует внимательно относиться к движению сотрудников внутри компании. Изменения занимаемой должности должны незамедлительно отражаться на правах доступа. Необходимо своевременно удалять пользователей, которые больше не работают в компании. Если, например, оставить человеку, занимавшему руководящую должность и ушедшему в компанию-конкурент доступ к данным, он сможет воспользоваться этими данными и нанести существенный ущерб компании. Если человек уходит в отпуск или уезжает в длительную командировку, нужно временно заблокировать его учётную запись.
Правильно спроектированная система безопасности не должна позволять пользователю выполнять действия, выходящие за рамки его полномочий. Не лишним так же бывает предусмотреть дополнительные средства защиты. Например, не разрешать удалять данные, если срок их хранения не истёк, или они не потеряли актуальность.
Рекомендуется так же предоставлять служащим, которые недавно устроились на работу минимальный доступ к данным или доступ только в режиме чтения. Позже, этим пользователям можно будет разрешить и изменение данных.
При создании паролей необходимо следовать стандартным рекомендациям. Желательно, чтобы пароль включал в себя не только символы, но и цифры. Необходимо следить за тем, чтобы пользователи не использовали в качестве пароля год рождения, номер паспорта, номер машины или другие часто используемые данные.
Рекомендуется установить ограниченный срок действия пароля, после истечения которого, система потребует у пользователя сменить пароль.
Система безопасности SQL Server базируется на пользователях и группах пользователей. Пользователи проходят два этапа проверки системой безопасности: аутентификацию и проверку прав доступа. На этапе аутентификации пользователь идентифицируется с помощью учётной записи и пароля. Если данные введены правильно, пользователь подключается к SQL Server. Подключение к SQL Server не даёт автоматического доступа к объектам базы данных. Для каждой базы данных регистрационное имя пользователя должно отображаться в имя пользователя базы данных. На основе прав, выданных пользователю базы данных, регистрационное имя, то есть логин, получает доступ к базе данных. В разных базах данных логин пользователя может иметь одно и то же, или разные имена пользователей базы данных с разными правами доступа.