Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие.doc
Скачиваний:
57
Добавлен:
14.05.2015
Размер:
1.51 Mб
Скачать

ТемаXi. Система безопасностиSqlServer2000

1. Типы безопасности. Создание и управление бюджетами пользователей

Защита данных от внутренних и внешних атак — одна из основных функций администратора базы данных. Очень важно четко контролировать, кто и как получил доступ к данным на ва­шем сервере. Средства безопасности в SQL Server помогают управлять доступом, который предоставляется пользователям. В большинстве корпоративных систем защита данных от внутрен­них атак является основной заботой. Средства безопасности включают в себя мони­торинг и управление корпоративными ба­зами данных в соответствии с ука­заниями менеджеров компании.

Стратегия безопасности часто разрабатыва­ется для огра­ничения наборов данных, доступных работникам для просмотра, и времени доступа к информации. Защита данных от внешних атак, таких как атаки со стороны Internet, более сложная задача. Она, в ос­новном, решается только в тех компаниях, которые на­чинают открывать свои базы данных и SQL Server для доступа по Internet. Внутренняя безопасность описывается с помощью мно­гоуровневой модели, начиная со входа в систему и прав доступа пользователя, которые защищают данные и ресурсы на сервере.

Второй уровень добавляет представления и хранимые процедуры, ограничивающие доступ к данным. Наконец, третий уровень — это внешняя безопасность, которая реализуется с по­мощью таких методов, как физический доступ по локальной сети, брандмауэры (firewalls) и т. д. На любом сервере архитектуры клиент/сервер система безопасности может быть реализована тремя способами - стандартным, интегрированным и сме­шанным. Эти методы безопасности контролируют, каким методом система SQL Server управляет пользовательскими бюджетами на сервере и как она взаимодействует с собственной системой безопасности Windows NT. В режиме стандартной безопасности SQL Server 2000 полностью отвечает за установку и поддержку бюджетов сервера. В этом случае SQL Server 2000 вы­полняет аутентификацию пользователя и наложение ограниче­ний, связан­ных с паролем и входом в систему. Это наиболее об­щий способ конфигури­рования SQL Server, он полностью совпа­дает с концепцией безопасности Sybase на любой аппаратной платформе.

При работе в режиме интегрированной безопасности за управление доступом пользователей отвечает операционная сис­тема Windows NT и осуществляется это с помощью списка кон­троля доступа (Access Control List, ACL). Преимуществами ин­тегрированной безопасности является доступ с единым паролем ко всем ресурсам домена Windows NT.

При присоединении к SQL Server вход в систему либо предоставляется, либо не предоставляется. Решение об этом при­нимается на основании атрибутов бюджета пользователя в системе Windows NT. Предоставление прав доступа или аутенти­фикации создает доверительный вход (trusted login) в систему. В этот момент Windows NT проверяет только возможность данного имени пользователя получить доступ к ресурсам в сети или сер­вера.

Когда пользователь устанавливает доверительное соеди­нение с SQL то для него:

  • Определяется соответствие с существующим вхо­дом в SQL Server, если имя найдено в таблице SYSLOGIN.

  • Выполняется присоединение к системе по умолча­нию (обычно с помощью бюджета guest).

  • Выполняется присоединение с помощью учетного имени системного администратора, если пользователь имеет права администратора в системе Windows NT.

SQL Server управляет всеми остальными определенными в базе данных правами доступа к таблицам, представлениям и дру­гим объектам тем же способом, что и в режиме стандартной безопасности.

Смешанная безопасность является комбинацией стандартной и интегрированной безопасно­сти. Это значит, что пользователи могут входить в систему сер­вера любым способом. Когда пользователь присоединяется к SQL Server в смешанном режиме безопасности, сервер проверяет, установил ли пользователь с данным именем доверительное соединение с Windows NT Server. Если такое соединение не найдено, SQL Server выполняет свою собственную проверку имени пользова­теля и пароля. Если запрошенный вход в систему неизвестен SQL Server, он не предоставляется.

Для подключения к серверу пользователь должен ввести имя и пароль. Возможны два варианта:

  • Use Windows NT authentication — подключение под именем пользователя Windows NT. В этом случае открыва­ется доверительное соединение, серверу передается имя группы, к которой принадлежит пользователь, и его учетное имя.

  • Use SQL Server authentication — подключение под именем SQL Server.

Пользователь, после того как он прошел про­верку и получил доступ к серверу, подключается к базе данных, назначенной ему по умолчанию. Контроль прав доступа предполагает проверку возможно­сти пользователя выполнять те или иные действия после подклю­чения к серверу.

SQL Server имеет два уровня бюджетов пользователя. Первый уровень — это идентификатор пользователя или вход в систему.

Идентификатор пользова­теля (login) служит для присое­динения к SQL Server. SQL Server управляет входами в систему на уровне сервера. Все входы в систему сохраняются в таблице SYSLOGINS главной базы данных Master. Второй уровень — собст­венно "пользователь" (в терминах SQL Server). Пользова­тели (users) — это объекты, с помощью которых SQL Server управляет правами доступа, позволяющими взаимодействовать с такими ресурсами, как таблицы и хранимые процедуры в опреде­ленной базе данных.

Пользователь может быть зарегистрирован в одной или многих базах данных. Все объекты - пользователи сохраняются в таблице SYSUSERS каждой базы данных, в которой они имеют права доступа.

SQL Server использует эти средства распознавания для на­значения пользователю различных уровней доступа, без изменения его пароля, в зависимости от базы данных, к которой он присое­диняется. Для этого пользователь имеет право входа в систему или присое­динения к серверу. Именно с этим входом в систему SQL Server ассоции­рует пароль. Без успешного систему пользователь не получит доступ к базам данных сервера. Исключение, возможно, состав­ляют удаленные системы, работающие с удаленными хранимыми процеду­рами.

Как только создан идентификатор пользователя (login), возникает необходимость создания пользователя базы данных этого сервера.

Сразу после установки SQL Server 2000 в системе имеются два стандартных идентификатора: SA и BUILTIN/Administrators. SA при­писан к роли sysadmin и имеет абсолютные права. Идентифика­тор BUILTIN/Administrators обеспечивает доступ к серверу всем членам административной группы Windows NT.

При необходимости разграничения администрирования операционной системы и SQL Server этот идентификатор можно исключить из роли sysadmin. В этом случае доступ к серверу для членов административной группы Windows сохранится, но вы­полняться он будет под учетным именем guest.

SQL Server Enterprise Manager предоставляет простой способ создания идентификатора пользователя. Для этого акти­визируйте SQL Server Enterprise Manager и выберите сервер, к кото­рому вы хотите добавить идентификатор пользователя. После этого щелкните правой кнопкой мыши на папке Logins и выберите ко­манду New Login контекстного меню. С помощью диалогового окна SQL Server Login Proper­ties можно определить новый идентификатор пользователя.

На вкладке General введите информацию о новом иден­тификаторе пользователя и выберите язык и базу данных, к которой данный идентификатор будет получать доступ по умолчанию. Здесь важно, кто будет проверять права доступа. Если вы­брать переключатель Windows NT Authentication и домен в рас­крывающемся списке Domain, SQL Server будет считать, что по­сле входа пользователя в операционную систему дополнительные проверки не требуются.

Обратите также внимание на группу переключателей Se­curity Access, в которой можно как разрешить (Grant Access), так и запретить (Deny Access) доступ. При желании проверку можно возложить и на SQL Server, установив пере­ключатель SQL Server Authentication.

После того как эти параметры определены, можно перехо­дить к следующей вкладке - Server Roles. При установке SQL Server 2000 создаются несколько стандартных ролей, которые приведены в таблице16. Выберите те из них, правами которых вы хотите наделить создаваемого пользователя (можно и ничего не выбирать).

Таблица 16