Назначение пользователю некоторой роли позволяет ему выполнять все функции, разрешенные этой ролью. Фактически роли логически группируют пользователей, имеющих одинаковые права доступа. В SQLServer есть следующие типы ролей:
- роли уровня сервера;
- роли уровня базы данных.
Роли уровня сервера
С помощью этих ролей предоставляются различные степени доступа к операциям и задачам сервера. Роли уровня сервера заранее определены и действуют в пределах сервера. Они не зависят от конкретных баз данных, и их нельзя модифицировать.
В SQLServer существуют следующие типы ролей уровня сервера:
Sysadmin – Дает право выполнить любое действие в SQLServer;
Serveradmin – Дает право изменить параметры SQLServer и завершить его работу
Setupadmin – Дает право инсталировать систему репликации и управлять выполнением расширенных хранимых процедур
Securityadmin – Дает право контролировать параметры учетных записей для подключения к серверу и предоставлять права доступа к базам данных
Processadmin – Дает право управлять ходом выполнения процессов в SQLServer
Dbcreator – Дает право создавать и модифицировать базы данных;
Diskadmin – Дает право управлять файлами баз данных на диске.
Роли уровня базы данных
Роли уровня базы данных позволяют назначить права для работы с конкретной базой данных отдельному пользователю или группе. Роли уровня базы данных можно назначать учетным записям пользователей в режиме аутентификации Windows или SQLServer. Роли могут быть и вложенными, так что учетным записям можно назначить иерархическую группу прав доступа.
В SQLServer существует три типа ролей:
- заранее определенные роли;
- определяемые пользователем роли;
- неявные роли.
Заранее определенными являются стандартные роли уровня БД. Эти роли имеет каждая база данных SQLServer. Они позволяют легко и просто передавать обязанности.
Заранее определенные роли зависят от конкретной базы данных и не могут быть изменены. Ниже перечислены стандартные роли уровня базы данных.
db_owner |
Определяет полный доступ ко всем объектам базы данных, может удалять и воссоздавать объекты, а также присваивать объектные права другим пользователям. Охватывает все функции, перечисленные ниже для других стандартных ролей уровня базы данных. |
db_accessadmin |
Осуществляет контроль за доступом к базе данных путем добавления или удаления пользователей в режимах аутентификации. |
db_datareader |
Определяет полный доступ к выборке данных (с помощью оператора SELECT) из любой таблицы базы данных. Запрещает выполнение операторов INSERT, DELETE и UPDATE для любой таблицы БД |
db_datawriter |
Разрешает выполнять операторы INSERT, DELETE и UPDATE для любой таблицы базы данных. Запрещает выполнение оператора SELECT для любой таблицы базы данных |
db_ddladmin |
Дает возможность создавать, модифицировать и удалять объекты базы данных |
db_securityadmin |
Управляет системой безопасности базы данных, а также назначением объектных и командных разрешений и ролей для базы данных |
db_backupoperator |
Позволяет создавать резервные копии базы данных |
db_denydatareader |
Отказ в разрешении на выполнение оператора SELECT для всех таблиц базы данных. Позволяет пользователям изменять существующие структуры таблиц, но не позволяет создавать или удалять существующие таблицы |
db_denydatawriter |
Отказ в разрешении на выполнение операторов модификации данных (INSERT, DELETE и UPDATE) для любых таблиц базы данных |
public |
Автоматически назначаемая роль сразу после предоставления права доступа пользователя к БД. |
Роли, определяемые пользователем, позволяют группировать пользователей и назначать каждой группе конкретную функцию безопасности.
Существуют два типа ролей уровня базы данных, определяемых пользователем:
- стандартная роль;
- роль уровня приложения.
Стандартная роль предоставляет зависящий от базы данных метод создания определяемых пользователем ролей. Самое распространенное назначение стандартной роли – логически сгруппировать пользователей в соответствии с их правами доступа. Например, в приложениях выделяют несколько типов уровней безопасности, ассоциируемых с тремя категориями пользователей. Опытный пользователь может выполнять в базе данных любые операции; обычный пользователь может модифицировать некоторые типы данных и обновлять данные; неквалифицированному пользователю обычнозапрещается модифицировать любые типы данных.
Роль уровня приложения позволяет пользователю выполнять права некоторой роли. Когда пользователь принимает роль уровня приложения, он берет на себя выполнение новой роли и временно отказывается от всех других назначенных ему прав доступа к конкретной базе данных. Роль уровня приложения имеет смысл применять в среде, где пользователи делают запросы и модифицируют данные с помощью клиентского приложения.
Назад к разделу "10.2.2. Пользователи базы данных"
Вперед к разделу "10.3. Управление обработкой. Представления, хранимые процедуры, триггеры"