SQL: Назначение разрешений и ролей в SQL Server
В SQL Server применяется разграничение прав безопасности на основе ролей. Роль - это определенный набор прав, который можно назначить определенному пользователю или группе пользователей. В SQL Server есть созданные по умолчанию роли уровня сервера и уровня базы данных, которые имеют предопределенный набор разрешений, назначенных для них. Также можно создавать свои роли, для которых администратор может самостоятельно определить список разрешений и запретов. Созданные по умолчанию роли уровня сервера и роли уровня базы данных имеют предопределенный набор разрешений, каждый на своем уровне и они не могут быть изменены. В статье ниже описаны созданные по умолчанию роли уровня сервера и уровня базы данных, которые могу назначаться пользователям и группам, а также способы их назначения.
Указанных в таблице список ролей, строится на базе 34 стандартных разрешений (permission) уровня сервера, которые разрешены или наоброт запрещены для встроенной роли, ниже список разрешений уровня сервера:
Роль public была описана в таблице выше, она есть на каждом уроне, в том числе и на уровне БД. Все созданные по умолчанию роли, будь то роли уровня базы данных или роли сервера имеют неизменные разрешения, добавлять новые права или удалять их нельзя, исключение только роль public.
На уровне базы данных тоже есть список 77 стандартных разрешений, часть из которых уже включена в роли и разрешения уровня сервера:
Получить список всех разрешений, можно на SQL сервере, выполнив команду:

Также ознакомиться со списком разрешений можно на плакате:
Посмотреть онлайн файл: microsoft_sql_server_permissions.pdf
Встроенные роли SQL Server уровня сервера
В таблице ниже представлены роли по умолчанию создаваемые на уровне сервера, и их краткое описание.Название роли | Описание роли |
sysadmin | Эта роль сервера дает возможность выполнять любые действия на сервере. |
serveradmin | Роли сервера serveradmin позволяет изменять параметры конфигурации на уровне сервера, а также выключать его. |
securityadmin | Те, кому назначена эта роль, могут управлять логинами, их правами и их свойствами. Они также могут предоставлять, запрещать и отменять разрешения на уровне базы данных при наличии доступа к базе данных. Кроме того, они могут сбрасывать пароли для имен входа SQL Server . Роль securityadmin может считаться эквивалентной роли sysadmin, тк позволяет выдавать любые разрешения. |
processadmin | Эта роль сервера позволяет завершать процессы, работающие на экземпляре SQL Server . |
setupadmin | Роль сервера setupadmin могут добавлять или удалять связанные серверы с помощью инструкций Transact-SQL . |
bulkadmin | Обладатели этой роли могут выполнять инструкцию BULK INSERT. |
diskadmin | Роль сервера diskadmin используется для управления файлами на диске. |
dbcreator | Эта роль позволяет создавать, изменять, удалять и восстанавливать любые базы данных. |
public | Роль public содержится в каждой базе данных, включая системные базы данных. Ее нельзя удалить, а также нельзя добавлять и удалять пользователей из нее. Разрешения, предоставленные роли public, наследуются всеми остальными пользователями и ролями, поскольку они принадлежат к роли public по умолчанию. Следует предоставлять роли public только разрешения, необходимые для всех пользователей. |
Указанных в таблице список ролей, строится на базе 34 стандартных разрешений (permission) уровня сервера, которые разрешены или наоброт запрещены для встроенной роли, ниже список разрешений уровня сервера:
Встроенные роли SQL Server уровня базы данных
В таблице ниже описаны роли уровня базы данных существующие во всех базах данных, а также кратно описаны права, которые дают эти роли . Все перечисленные ниже роли уровня БД встроенные, и их права не подлежат изменению.Название роли | Описание роли |
db_owner | Эта роль дает право выполнять все действия по настройке и обслуживанию базы данных, а также удалять БД. |
db_securityadmin | Роли db_securityadmin дает возможность управлять ролями и разрешениями пользователей, в том числе своими . |
db_accessadmin | Эта роль позволяет добавлять или удалять права удаленного доступа к БД. |
db_backupoperator | Роль db_backupoperator позволяет создавать резервные копии БД. |
db_ddladmin | Эта роль позволяет выполнять любые команды Data Definition Language (DDL) в БД. |
db_datawriter | Эта роль позволяет добавлять, удалять или изменять данные во всех таблицах. |
db_datareader | Роль db_datareader дает право считывать все данные из всех таблиц. |
db_denydatawriter | Те, кому назначена эта роль, не могут добавлять, изменять или удалять данные в таблицах БД. |
db_denydatareader | Обладатели этой роли, не могут считывать данные из таблиц базы данных. |
Роль public была описана в таблице выше, она есть на каждом уроне, в том числе и на уровне БД. Все созданные по умолчанию роли, будь то роли уровня базы данных или роли сервера имеют неизменные разрешения, добавлять новые права или удалять их нельзя, исключение только роль public.
На уровне базы данных тоже есть список 77 стандартных разрешений, часть из которых уже включена в роли и разрешения уровня сервера:
Получить список всех разрешений, можно на SQL сервере, выполнив команду:
SELECT * FROM sys.fn_builtin_permissions('');
Результат будет выглядеть примерно так:
Также ознакомиться со списком разрешений можно на плакате:
microsoft_sql_server_permissions.pdf
[1.45 Mb] (cкачиваний: 933)
Посмотреть онлайн файл: microsoft_sql_server_permissions.pdf
Похожие статьи:
18 май 2022, Среда
Что такое FSMO роли, их назначение и можно ли без них жить
24 ноябрь 2021, Среда
SQL: Saving Changes is not permitted
03 апрель 2019, Среда
SQL: Как определить размер таблиц в БД MS SQL
26 март 2019, Вторник
Как определить/повысить функциональный уровень домена/леса Active Directory?
01 ноябрь 2017, Среда
SQL: Перевод БД Microsoft в Single-user Mode
Комментарии: