10.2.3. Роли

 

Назначение пользователю некоторой роли позволяет ему выполнять все функции, разрешенные этой ролью. Фактически роли логически группируют пользователей, имеющих одинаковые права доступа. В 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. Управление обработкой. Представления, хранимые процедуры, триггеры"