Компоненты системы безопасности SQL Server 2000
Система безопасности SQL Server 2000 основывается на учетных записях (login), пользователях (user), ролях (role) и группах (group). Учетные записи. Пользователь, подключившийся к SQL Server 2000, должен идентифицировать себя, используя учетную запись. После того как клиент успешно прошел аутентификацию, он получает доступ к SQL Server. Для получения доступа к любой базе данных сервера учетная запись пользователя (login) отображается в пользователя базы данных (user). Объект «пользователь базы данных» применяется для предоставления доступа ко всем объектам базы данных% таблицам, представлениям, хранимым процедурам и т.д. В пользователя базы данных может отображаться: · учетная запись Windows NT/2000; · группа Windows NT/2000; · учетная запись SQL Server 2000. Подобное отображение учетной записи необходимо для каждой базы данных, доступ к которой хочет получить пользователь. Отображения сохраняются в системной таблице sysusers, которая имеется в любой базе данных. Пользователи баз данных могут объединяться в группы и роли для упрощения управлением системой безопасности. Если учетная запись не отображена в пользователя базы данных, клиент все же может получить доступ к базе данных под гостевым именем quest, если оно имеется в базе данных. Обычно пользователю quest предоставляется минимальный доступ только в режиме чтения. Но в некоторых случаях и эту возможность необходимо предотвратить. Пользователи. После того как пользователь прошел аутентификацию и получил идентификатор учетной записи (login ID), он считается зарегистрированным и ему предоставляется доступ к серверу. Пользователи выступают в качестве специальных объектов SQL Server, при помощи которых определяются все разрешения доступа и владения объектами в базе данных.
При создании базы данных определяются два стандартных пользователя: dbo и quest. Если учетная запись (login) не связывается явно с пользователем (user), последнему предоставляется неявный доступ с использованием гостевого имени quest. Все учетные записи, получившие доступ к SQL Server 2000, автоматически отображаются в пользователей quest во всех базах данных. Тем не менее, quest не имеет автоматического доступа к объектам. Владелец объекта должен сам решить, разрешать пользователю quest этот доступ или нет. Владелец базы данных (DataBase Owner, DBO) – специальный пользователь, обладающий максимальными правами в базе данных. Любой член роли sysadmin автоматически отображается в пользователя dbo. Если пользователь, являющийся sysadmin, создает какой-нибудь объект, то владельцем этого объекта будет не данный пользователь, а dbo. Пользователя dbo нельзя удалить. Роли. Роль позволяет объединить пользователей, выполняющих одинаковые функции, для упрощения администрирования системы безопасности SQL Server. В SQL Server 2000 реализовано два вида стандартных ролей: на уровне сервера и на уровне баз данных. При установке SQL Server 2000 создает 8 фиксированных ролей сервера и 9 фиксированных ролей базы данных. Фиксированную роль сервера (server role) нельзя удалить или модифицировать. Нельзя также создать новую фиксированную роль сервера. Предоставить права доступа к серверу можно только путем включения пользователя в требуемую роль сервера. В предыдущих версиях SQL Server можно было использовать только учетные запись sa, которая предоставляла все права доступа к серверу. Фиксированные роли сервера и их права приведены в таблице 10. Таблица 10. Фиксированные роли сервера
Роли базы данных (database role) позволяют объединять пользователей в одну административную единицу и работать с ней как с обычным пользователем. Можно назначить права доступа к объектам базы данных для конкретной роли, при этом все члены роли автоматически наделяются одинаковыми правами.
При создании базы данных сервер автоматически создает для нее фиксированные роли, которые, как и фиксированные роли сервера, нельзя удалить или модифицировать. Фиксированные роли баз данных и их права приведены в таблице 11. Таблица 11. Фиксированные роли баз данных
Кроме этих фиксированных ролей любой базы данных есть еще одна роль public, членами которой автоматически становятся все пользователи, имеющие тот или иной доступ к базе данных. Эта роль имеет специальное назначение и обеспечивает минимальные права доступа к базе данных тем пользователям, для которых их права не определены явно. Эта роль имеется во всех базах данных, включая системные базы данных master, tempdb, msdb, model, и не может быть удалена. Если в базе данных разрешен пользователь guest, то установленный для public доступ будут иметь все пользователи, получившие доступ к SQL Server. В отличие от сервера базы данных могут иметь пользовательские роли и роли приложения, которые создает администратор с помощью Enterprise Manager или Transact-SQL индивидуально для групп пользователей и групп приложений, наделяя их необходимыми правами доступа к конкретной базе данных.
В любую роль базы данных можно включать: а) пользователь сервера; б) роли сервера; в) пользователей Windows NT/2000; г) группы пользователей Windows NT/2000. Средствами Enterprise Manager можно включать только пользователей сервера. Процедура SQL Server sp_addrolemember позволяет включать как роли сервера, так и пользователей Windows NT/2000, в том числе и групп пользователей с помощью задания их учетной записи в SQL Server или Windows NT, и указания требуемой роли. Работа с данными и выполнение хранимых процедур требуют наличия класса доступа, называемого правами на доступ к объектам баз данных: таблицам и ее столбцам, представлениям и хранимым процедурам. Такими правами являются: · SELECT, INSERT, UPDATE, DELETE, REFERENCES – для таблиц и представлений; · Select и update – для столбца таблицы или представления; · Execute – для хранимых процедур и функций. Здесь право references разрешает создавать внешние ключи и представления для таблиц. Командой grant языка Transact-SQL можно разрешить пользователям определенные права доступа к объектам, командой revoke – отзывать эти права, а командой deny – запрещать их. Помимо прав доступа к объектам имеются еще права на создание объектов базы данных и самой базы данных. Роль приложения (application role) позволяет выдать права доступа не конкретному пользователю или их группе, а приложению в целом. При этом не важно, какой именно пользователь работает с приложением и какие права доступа он имеет. Получив доступ к приложению, пользователь может выполнять все действия, разрешенные роли приложения.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|