Смекни!
smekni.com

Администрирование SQL Server 2000 (стр. 3 из 5)

Выполнение условия уникальности является обязательным. В то же время при необходимости мо­жет быть допущено нарушение условия минимальности.

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

Один из возможных ключей произвольно выбирается в качестве первичного ключа. Остальные возможные ключи, если они есть, принимаются за альтерна­тивные ключи. Например, если в качестве первичного ключа выбрать иденти­фикационный номер, то номер паспорта будет альтернативным ключом.[9]

Взаимосвязь таблиц является важнейшим элементом реляционной модели данных. Она поддерживается внешними ключами (foreign key). Рассмотрим при­мер. При описании модели реляционной базы данных для одного и того же поня­тия часто употребляют различные термины, что зависит от уровня описания (теория или практика) и системы (Access, SQL Server, dBase).

Администрирование

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

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

В современных условиях, когда информация имеет огромное значение, при­нятие мер для предотвращения несанкционированного доступа, предупрежде­ния потери или повреждения информации становятся неотъемлемой частью работы любой компании. В последнее время все больше предприятий отказываются от бумажных хра­нилищ информации и переходят к компьютерной обработке документов. Систе­ма хранения информации должна быть максимально защищена как от случайного, так и от преднамеренного повреждения или искажения информации. При созда­нии базы данных разработчик должен спланировать ее таким образом, чтобы любой пользователь не мог сделать что-либо, не имея на это соответствующих прав. Не следует надеяться на компетентность пользователя и его порядочность. Возможно исправление или удаление данных не по злому умыслу, а просто из-за невнимательности или ошибки. Система, насколько это возможно, должна препятствовать подобным действиям.[10]

Система управления базами данных Microsoft SQL Server 2000 имеет разно­образные средства администрирования для обеспечения защиты данных

Общие правила разграничения доступа

Если база данных предназначена для использования более чем одним че­ловеком, необходимо позаботиться о разграничении прав доступа. В процессе планирования системы безопасности следует определить, какие данные могут просматривать те или иные пользователи и какие действия в базе данных им разрешено при этом предпринимать.

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

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

Следует тщательно планировать права, выдаваемые пользователям в соответствии с за­нимаемой должностью и необходимостью выполнения конкретных действий. Так вовсе необязательно назначать права на изменение данных в таблице, содержа­щей сведения о зарплате сотрудников, директору компании. И, конечно же, нельзя предоставлять подобные права рядовому сотруднику. Вы можете выдать права только на ввод новых данных, например информации о новых клиентах. Непра­вильный ввод такой информации не нанесет серьезного ущерба компании, но если добавить к правам ввода еще и возможность исправления или удаления уже существующих данных, то злоумышленник, завладевший паролем, может нанес­ти существенные финансовые потери. Кроме этого, следует учесть ущерб от рабо­ты пользователей, не сильно задумывающихся о последствиях своих действий.

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

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

Архитектура системы безопасности SQL Server 2000

Система безопасности

Система безопасности SQL Server 2000 базируется на пользователях и учетных записях. Пользователи проходят следующие два этапа проверки системой безо­пасности. На первом этапе пользователь идентифицируется по имени учетной записи и паролю, то есть проходит аутентификацию. Если данные введены пра­вильно, пользователь подключается к SQL Server. Подключение к SQL Server, или регистрация, не дает автоматического доступа к базам данных. Для каждой базы данных сервера регистрационное имя (или учетная запись — login) должно отображаться в имя пользователя базы данных (user). На втором этапе, на осно­ве прав, выданных пользователю как пользователю базы данных (user), его ре­гистрационное имя (login) получает доступ к соответствующей базе данных. В разных базах данных login одного и того же пользователя может иметь одинако­вые или разные имена user с разными правами доступа.

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

Итак, на уровне сервера система безопасности оперирует следующими поня­тиями:

1) аутентификация (authentication);

2) учетная запись (login);

3) встроенные роли сервера (fixed server roles).

На уровне базы данных используются следующие понятия: пользователь базы данных (database user); фиксированная роль базы данных (fixed database role); пользовательская роль базы данных (users database role); роль приложения (application role).[11]

Режимы аутентификации

SQL Server 2000 может использовать два режима аутентификации пользователей: режим аутентификации средствами Windows NT/2000 (Windows NT Authentication); смешанный режим аутентификации (Windows NT Authentication and SQL Server Authentication).

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

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