Опубликован: 11.12.2006 | Уровень: специалист | Доступ: платный
Лекция 34:

Управление пользователями и системой безопасности

Аннотация: Безопасность – главная составляющая успеха базы данных. Ограничение прав пользователей создает безопасность данных. Вы сможете управлять пользовательскими учетными записями подключения к SQL Server, понять принципы работы режимов аутентификации. Существует два режима аутентификации: режим аутентификации Windows и режим смешанной аутентификации. Каждый из них обладает рядом особенностей, с которыми вы познакомитесь в процессе изучения лекции. Особое внимание уделено T-SQL и его эффективному использованию. Системные хранимые процедуры sp_addlogin и sp_grantlogin помогут создавать пользовательские login-записи. Вы также рассмотрите улучшенное средство безопасности, включенное в SQL Server 2000, которое позволяет передавать защищенным образом учетные записи безопасности между серверами в среде Windows 2000.

В этой лекции вы узнаете, как управлять пользователями и системой безопасности в среде Microsoft SQL Server 2000. Вместе с планированием резервного копирования и восстановления, определением состава системы и управлением дисковым пространством управление системой безопасности является одной из наиболее характерных задач для администратора баз данных (DBA). Это также одна из наиболее важных задач, которые должен выполнять DBA. Если пренебречь вопросами безопасности системы, это может привести к потере или порче данных.

Эта лекция охватывает ряд тем, относящихся к управлению пользователями и системой безопасности. Вы узнаете о том, как создавать пользовательские login-записи* (пользовательские учетные записи подключения к SQL Server) и управлять ими, а также о режимах аутентификации; кроме того, вы узнаете об идентификаторах пользователей. Пользовательская login-запись (user login) используется для аутентификации доступа к SQL Server. Она может аутентифицироваться через систему Microsoft Windows NT, Windows 2000 или SQL Server. Идентификатор пользователя (user ID) используется, чтобы присваивать пользовательские полномочия для доступа к определенным объектам в отдельных базах данных. Идентификаторы пользователей связаны с пользовательскими учетными записями и могут содержать (или не содержать) одно и то же имя, как вы увидите далее. Вы также узнаете о типах полномочий, которые могут быть присвоены в SQL Server, а также об их использовании. Кроме того, вы узнаете, как использовать роли для более простого управления пользователями. И, наконец, вы узнаете о важном средстве в SQL Server 2000, которое называется делегированием учетной записи безопасности. К концу этой лекции вы получите знания, необходимые для управления пользовательскими login-записями и системой безопасности.

Создание и администрирование пользовательских login-записей

Начнем изучение средств управления пользователями и системой безопасности с рассмотрения пользовательских login-записей. В этом разделе мы опишем сначала, почему так важны login-записи, и рассмотрим методы аутентификации, которые можно использовать для поддержки login-записей. Затем мы рассмотрим три метода создания login-записей: использование SQL Server Enterprise Manager, использование Transact-SQL (T-SQL) и использование мастера создания учетных записей Create Login Wizard. И, наконец, мы увидим, как использовать Enterprise Manager и T-SQL для создания новых пользовательских login-записей.

Зачем нужно создавать пользовательские login-записи?

Пользовательские login-записи позволяют вам защищать свои данные от преднамеренного или непреднамеренного модифицирования несанкционированными (неавторизованными) пользователями. С помощью пользовательских login-записей SQL Server может аутентифицировать отдельных авторизованных пользователей. Каждой пользовательской login-записи присваивается уникальное имя и пароль. Каждому пользователю присваивается его собственная учетная login-запись для входа в SQL Server. Без пользовательских login-записей для всех соединений с SQL Server использовался бы один и тот же идентификатор, а это означает, что вы не могли бы создавать различные уровни безопасности для тех, кто осуществляет доступ к базе данных.

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

Чтобы увидеть, как осуществляется ограничение доступа к данным с помощью пользовательских login-записей, вернемся к примеру, впервые представленному в "Создание и использование представлений" , где показано использование представлений для ограничения доступа к критически важным данным. Предположим, что у нас имеется таблица Employee, содержащая информацию о сотрудниках, включая имя каждого сотрудника, номер телефона, номер офиса), должность, заработную плату, надбавку и т.д. Чтобы воспрепятствовать доступу определенных пользователей к конфиденциальным данным этой таблицы, сначала нужно создать представление, содержащее только общедоступные данные, такие как имена сотрудников, номера телефонов и номера офисов. Затем, реализуя пользовательские login-записи, вы можете ограничить доступ к исходной таблице, разрешив при этом доступ всех пользователей к представлению. Но если не использовать возможности пользовательских login-записей, то любой пользователь будет иметь доступ и к представлению, и к таблице, что лишает смысла использование этого представления.

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

Для доступа к 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

Как уже говорилось, при аутентификации с помощью 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 (в доверенной сети), то разработчики этих приложений не обязаны обеспечивать аутентификацию внутри самих приложений, что упрощает их работу.

Максим Ерохин
Максим Ерохин
Россия, г. Санкт-Петербург
Татьяна Лубинец
Татьяна Лубинец
Россия, Уфа, Уфимский авиационный институт, 1987