SQL: Назначение разрешений и ролей в SQL Server

06 апрель 2020, Понедельник
27 764
0
2 3
В SQL Server применяется разграничение прав безопасности на основе ролей. Роль - это определенный набор прав, который можно назначить определенному пользователю или группе пользователей. В SQL Server есть созданные по умолчанию роли уровня сервера и уровня базы данных, которые имеют предопределенный набор разрешений, назначенных для них. Также можно создавать свои роли, для которых администратор может самостоятельно определить список разрешений и запретов. Созданные по умолчанию роли уровня сервера и роли уровня базы данных имеют предопределенный набор разрешений, каждый на своем уровне и они не могут быть изменены. В статье ниже описаны созданные по умолчанию роли уровня сервера и уровня базы данных, которые могу назначаться пользователям и группам, а также способы их назначения.

Встроенные роли 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качиваний: 879)

Посмотреть онлайн файл: microsoft_sql_server_permissions.pdf
1 2 3
Комментарии:
Прокомментировать
При использовании материалов ссылка на сайт UserMan.ru обязательна.
Политика конфиденциальности
Пользовательское соглашение
UserMan.ru © 2017-2024
Соцсети: VK