Основные методы защиты данных. Управление пользователями
Стабильная система управления пользователями – обязательное условие безопасности данных , хранящихся в любой реляционной СУБД . В языке SQL не существует единственной стандартной команды, предназначенной для создания пользователей базы данных – каждая реализация делает это по-своему. В одних реализациях эти специальные команды имеют определенное сходство, в то время как в других их синтаксис имеет существенные отличия. Однако независимо от конкретной реализации все основные принципы одинаковы.
Управление пользователями в среде MS SQL ServerРассмотрим вопрос создания пользователей в среде MS SQL Server .
После проектирования логической структуры базы данных , связей между таблицами, ограничений целостности и других структур необходимо определить круг пользователей , которые будут иметь доступ к базе данных.
В системе SQL - сервер организована двухуровневая настройка ограничения доступа к данным. На первом уровне необходимо создать так называемую учетную запись пользователя ( login ), что позволяет ему подключиться к самому серверу, но не дает автоматического доступа к базам данных. На втором уровне для каждой базы данных SQL -сервера на основании учетной записи необходимо создать запись пользователя . На основе прав , выданных пользователю как пользователю базы данных ( user ), его регистрационное имя ( login ) получает доступ к соответствующей базе данных. В разных базах данных login одного и того же пользователя может иметь одинаковые или разные имена user с разными правами доступа . Иначе говоря, с помощью учетной записи пользователя осуществляется подключение к SQL -серверу, после чего определяются его уровни доступа для каждой базы данных в отдельности.
В системе SQL-сервер существуют дополнительные объекты – роли , которые определяют уровень доступа к объектам SQL-сервера. Они разделены на две группы: назначаемые для учетных записей пользователя сервера и используемые для ограничения доступа к объектам базы данных.
Итак, на уровне сервера система безопасности оперирует следующими понятиями:
- аутентификация ;
- учетная запись ;
- встроенные роли сервера.
На уровне базы данных применяются следующие понятия;
- пользователь базы данных;
- фиксированная роль базы данных;
- пользовательская роль базы данных.
SQL Server предлагает два режима аутентификации пользователей :
- режим аутентификации средствами Windows NT/2000;
- смешанный режим аутентификации (Windows NT Authentication and SQL Server Authentication).
Для создания пользователя в среде MS SQL Server следует предпринять следующие шаги:
- Создать в базе данных учетную запись пользователя , указав для него пароль и принятое по умолчанию имя базы данных (процедура sp_addlogin ).
- Добавить этого пользователя во все необходимые базы данных (процедура sp_adduser ).
- Предоставить ему в каждой базе данных соответствующие привилегии (команда GRANT ) .
Создание новой учетной записи может быть произведено с помощью системной хранимой процедуры:
После завершения аутентификации и получения идентификатора учетной записи (login ID) пользователь считается зарегистрированным, и ему предоставляется доступ к серверу. Для каждой базы данных, к объектам которой он намерен получить доступ , учетная запись пользователя (login) ассоциируется с пользователем (user) конкретной базы данных, что осуществляется посредством процедуры:
Отобразить учетную запись Windows NT в имя пользователя позволяет хранимая процедура:
Пользователь , который создает объект в базе данных (таблицу, хранимую процедуру, просмотр), становится его владельцем . Владелец объекта ( database object owner dbo) имеет все права доступа к созданному им объекту. Чтобы пользователь мог создать объект, владелец базы данных (dbo) должен предоставить ему соответствующие права . Полное имя создаваемого объекта включает в себя имя создавшего его пользователя .
Владелец объекта не имеет специального пароля или особых прав доступа . Он неявно имеет полный доступ , но должен явно предоставить доступ другим пользователям .
SQL Server позволяет передавать права владения от одного пользователя другому с помощью процедуры:
Роль позволяет объединить в одну группу пользователей , выполняющих одинаковые функции.
В SQL Server реализовано два вида стандартных ролей : на уровне сервера и на уровне баз данных. При установке SQL Server создаются фиксированные роли сервера (например, sysadmin с правом выполнения любых функций SQL-сервера) и фиксированные роли базы данных (например, db_owner с правом полного доступа к базе данных или db_accessadmin с правом добавления и удаления пользователей ). Среди фиксированных ролей базы данных существует роль public, которая имеет специальное назначение, поскольку ее членами являются все пользователи , имеющие доступ к базе данных.
Можно включить любую учетную запись SQL Server (login) или учетную запись Windows NT в любую роль сервера.
Роли базы данных позволяют объединять пользователей в одну административную единицу и работать с ней как с обычным пользователем . Можно назначить права доступа к объектам базы данных для конкретной роли , при этом автоматически все члены этой роли наделяются одинаковыми правами .
В роль базы данных можно включить пользователей SQL Server, роли SQL Server, пользователей Windows NT.
Различные действия по отношению к роли осуществляются при помощи специальных процедур: