SQL Server 2000
оздании базы данных разработчик должен спланировать ее таким
образом, чтобы любой пользователь не мог сделать что-либо, не имея на это
соответствующих прав. Не следует надеяться на компетентность пользователя
и его порядочность. Возможно исправление или удаление данных не по злому
умыслу, а просто из-за невнимательности или ошибки. Система, насколько
это возможно, должна препятствовать подобным действиям.
Система управления базами данных Microsoft SQL Server 2000 имеет
разнообразные средства обеспечения защиты данных. Эта глава посвящена
детальному знакомству с системой безопасности SQL Server 2000.
Общие правила разграничения доступа
Если ваша база данных предназначена для использования более чем одним
человеком, необходимо позаботиться о разграничении прав доступа. В
процессе планирования системы безопасности следует определить, какие
данные могут просматривать те или иные пользователи и какие действия в
базе данных им разрешено при этом предпринимать.
После проектирования логической структуры базы данных, связей между
таблицами, ограничений целостности и других структур необходимо
определить круг пользователей, которые будут иметь доступ к базе данных.
Чтобы разрешить этим пользователям обращаться к серверу, создайте для них
учетные записи в SQL Server либо предоставьте им доступ посредством
учетных записей в домене, если вы используете систему безопасности
Windows NT. Разрешение доступа к серверу не дает автоматически доступа к
базе данных и ее объектам.
Второй этап планирования системы безопасности заключается в определении
действий, которые может выполнять в базе данных конкретный пользователь.
Полный доступ к базе данных и всем ее объектам имеет администратор,
который является своего рода хозяином базы данных — ему позволено все.
Второй человек после администратора — это владелец объекта. При создании
любого объекта в базе данных ему назначается владелец, который может
устанавливать права доступа к этому объекту, модифицировать его и
удалять. Третья категория пользователей имеет права доступа, выданные им
администратором или владельцем объекта.
Тщательно планируйте права, выдаваемые пользователям в соответствии с
занимаемой должностью и необходимостью выполнения конкретных действий.
Так вовсе необязательно назначать права на изменение данных в таблице,
содержащей сведения о зарплате сотрудников, директору компании. И,
конечно же, нельзя предоставлять подобные права рядовому сотруднику. Вы
можете выдать права только на ввод новых данных, например информации о
новых клиентах. Неправильный ввод такой информации не нанесет серьезного
ущерба компании, но если добавить к правам ввода еще и возможность
исправления или удаления уже существующих данных, то злоумышленник,
завладевший паролем, может нанести существенные финансовые потери. Кроме
этого, следует учесть ущерб от работы пользователей, не сильно
задумывающихся о последствиях своих действий.
Правильно спроектированная система безопасности не должна позволять
пользователю выполнять действия, выходящие за рамки его полномочий. Не
лишним также будет предусмотреть дополнительные средства защиты,
например, не разрешать удалять данные, если срок их хранения не истек, то
есть они не потеряли актуальность. Можно также предоставлять служащим,
которые недавно устроились на работу, минимальный доступ или доступ
только в режиме чтения. Позже им можно будет разрешить и изменение
данных.
Следует внимательно относиться к движению сотрудников внутри компании,
их переходам из одного отдела в другой. Изменения занимаемой должности
должны незамедлительно отражаться на правах доступа. Своевременно
удаляйте пользователей, которые больше не работают в компании. Если вы
оставите человеку, занимавшему руководящую должность и ушедшему в
конкурирующую фирму, доступ к данным, он может воспользоваться ими и
нанести ущерб вашей компании. Если человек уходит в отпуск или уезжает в
длительную командировку, нужно временно заблокировать его учетную запись.
При создании паролей следуйте стандартным рекомендациям. Желательно,
чтобы пароль включал в себя не только символы, но и цифры. Следите, чтобы
пользователи не применяли в качестве пароля год рождения, номер паспорта,
машины или другие часто используемые данные. Установите ограниченный срок
действия пароля, по истечении которого система потребует у пользователя
сменить пароль. Для достижения максимальной степени безопасности
используйте аутентификацию пользователей средствами Windows NT, поскольку
операционные системы этого семейства предоставляют множество очень
полезных средств защиты.
Архитектура системы безопасности SQL Server 2000
Система безопасности SQL Server 2000 базируется на пользователях и
учетных записях. Пользователи проходят следующие два этапа проверки
системой безопасности. На первом этапе пользователь идентифицируется по
имени учетной записи и паролю, то есть проходит аутентификацию. Если
данные введены правильно, пользователь подключается к SQL Server.
Подключение к SQL Server, или регистрация, не дает автоматического
доступа к базам данных. Для каждой базы данных сервера регистрационное
имя (или учетная запись — login) должно отображаться в имя пользователя
базы данных (user). На втором этапе, на основе прав, выданных
пользователю как пользователю базы данных (user), его регистрационное имя
(login) получает доступ к соответствующей базе данных. В разных базах
данных login одного и того же пользователя может иметь одинаковые или
разные имена user с разными правами доступа.
Для доступа приложений к базам данных им также понадобятся права. Чаще
всего приложениям выдаются те же права, которые предоставлены
пользователям, запускающим эти приложения. Однако для работы некоторых
приложений необходимо иметь фиксированный набор прав доступа, не
зависящих от прав доступа пользователя. SQL Server 2000 позволяет
предоставить такие с применением специальных ролей приложения.
Итак, на уровне сервера система безопасности оперирует следующими
понятиями:
О аутентификация (authentication);
О учетная запись (login);
О встроенные роли сервера (fixed server roles).
На уровне базы данных используются следующие понятия: О пользователь
базы данных (database user); О фиксированная роль базы данных (fixed
database role); О пользовательская роль базы данных (users database
role); О роль приложения (application role).
Режимы аутентификации
SQL Server 2000 может использовать два режима аутентификации
пользователей: О режим аутентификации средствами Windows NT/2000
(Windows NT Authentication);
О смешанный режим аутентификации (Windows NT Authentication and SQL
Server Authentication).
Смешанный режим позволяет пользователям регистрироваться как средствами
Windows NT, так и средствами SQL Server. Кроме того, этот режим
предлагает некоторые удобства по сравнению с первым. В частности, при
аутентификации только средствами домена Windows NT, если пользователь не
имеет учетной записи в домене Windows NT, то он не сможет получить
доступа к серверу баз данных. Смешанный режим аутентификации позволяет
избежать этой проблемы.
При выборе режима аутентификации следует исходить как из требований
обеспечения наибольшей безопасности, так и из соображений простоты
администрирования. Если ваша организация небольшая и должности
администратора сети и администратора баз данных совмещает один человек,
то удобнее использовать аутентификацию Windows NT. Если же в организации
сотни пользователей и функции системного администратора и администратора
баз данных выполняют различные люди, то может оказаться, что
аутентификация средствами SQL Server удобнее. В противном случае
человеку, занимающемуся администрированием сервера баз данных, придется
постоянно обращаться к системному администратору для создания нового
пользователя, смены пароля или для перевода пользователя из одной группы
в другую. К тому же системный администратор будет иметь возможность
назначать права доступа по своему усмотрению, а это совсем ни к чему.
С другой стороны, каждый пользователь организации, скорее всего, имеет
в домене учетную запись, администрированием которой занимается системный
администратор. Благодаря аутентификации Windows NT администратор баз
данных может использовать уже готовые учетные записи, а не отвлекаться на
создание новых.
Обратите внимание, что речь идет только о праве подключения
пользователя к серверу баз данных. После регистрации пользователя в SQL
Server способ проверки прав доступа к конкретной базе данных одинаков для
обоих режимов аутентификации.
Режим аутентификации SQL Server
Для установки соединения с сервером SQL Server 2000, находящемся в домене,
с которым не установлены доверительные отношения, можно использовать
аутентификацию SQL Server. Аутентификация SQL Server также используется,
когда вообще нет возможности зарегистрироваться в домене. Например, при
подключении к SQL Server 2000 по Интернету.
При работе с аутентификацией SQL Server доступ также предоставляется на
основе учетных записей. Но в этом случае используются учетные записи SQL
Server, а не Windows NT.
Для аутентификации средствами SQL Server Server член стандартной роли
серв
| | скачать работу |
SQL Server 2000 |