Как использовать роли SQL Server

Kak Ispol Zovat Roli Sql Server



Использование SQL Server заключается в хранении, извлечении и управлении данными. Одной из ключевых особенностей SQL Server является его способность предоставлять и управлять разрешениями для различных пользователей и групп. Роли SQL Server — это мощный инструмент, который позволяет администраторам баз данных назначать набор разрешений группе пользователей со схожими потребностями.

В этой статье представлено руководство по использованию ролей SQL Server, включая обзор различных типов доступных ролей, примеры назначения этих ролей пользователям и советы по управлению этими ролями.







Что такое роли SQL?

Роли позволяют администратору баз данных более эффективно управлять разрешениями. Сначала нам нужно создать роли. Затем мы назначаем разрешения ролям, а затем добавляем логины к ролям, соответственно.



SQL Server поддерживает в основном два типа ролей:



  • Фиксированные роли сервера: Эти роли уже имеют предопределенный набор разрешений.
  • Определяемые пользователем роли сервера: Эти роли можно изменить в соответствии с требованиями вашей организации.

Типы ролей SQL Server

SQL Server предоставляет несколько встроенных ролей, которые можно использовать для назначения разрешений пользователям. Вот некоторые из наиболее распространенных ролей и соответствующие им разрешения:





  • массадмин: Члены фиксированной роли сервера bulkadmin могут запускать инструкцию «BULK INSERT».
  • системный администратор: Эта роль имеет самый высокий уровень разрешений и может выполнять любые действия с экземпляром SQL Server, включая создание, изменение и удаление баз данных и учетных записей.
  • админ сервера: Эта роль может настраивать параметры уровня сервера, такие как выделение памяти и сетевые протоколы, но не может изменять базы данных.
  • администратор безопасности: Эта роль может управлять логинами и их разрешениями, включая создание и изменение логинов, ролей и паролей.
  • процессадмин: Фиксированная серверная роль processadmin предоставляет своим членам возможность завершать или останавливать процессы, которые в настоящее время выполняются в экземпляре ядра СУБД SQL Server.
  • создатель базы данных : У него есть разрешения на создание, изменение и удаление баз данных, но у него нет полномочий на выполнение каких-либо других административных обязанностей.
  • администратор диска: Эта роль может управлять файлами на диске, например создавать и удалять файлы, а также добавлять или удалять диски.
  • считыватель данных: Роль чтения данных имеет возможность доступа и чтения всей информации, хранящейся в пользовательских таблицах базы данных.
  • автор данных: Роль модуля записи данных имеет право вставлять, обновлять и удалять данные из всех пользовательских таблиц в базе данных.
  • ддладмин: Эта роль может создавать, изменять и удалять триггеры и объекты DDL (представления, таблицы и хранимые процедуры).
  • публичный: По умолчанию все пользователи, группы и роли SQL Server автоматически включаются в общедоступную фиксированную роль сервера.

Создание пользовательской роли сервера с помощью графического интерфейса

Создать пользовательскую роль сервера в SQL Server можно через графический интерфейс с помощью SQL Server Management Studio (SSMS). Чтобы создать пользовательскую роль сервера с помощью графического интерфейса в SSMS, выполните следующие действия.

1. Запустите SQL Server Management Studio (SSMS) и установите соединение с конкретным экземпляром SQL Server.



2. Перейдите в Безопасность -> Роли сервера-> Новая роль сервера.

3. Укажите имя новой роли на странице Общие.

4. Укажите защищаемые объекты на уровне сервера, на которые роль будет иметь разрешения, на странице «Защищаемые объекты».

5. Добавьте любых пользователей или другие роли на странице «Участники».

Создание и использование роли сервера с помощью T-SQL

Создание и использование роли сервера с помощью T-SQL в SQL Server — еще один способ управления разрешениями на уровне сервера. Чтобы создать пользовательскую роль сервера с помощью T-SQL, мы должны выполнить следующие шаги:

1. Откройте новое окно запроса и выполните следующий код, чтобы создать новую роль сервера:

-- << Создать пользовательскую роль сервера

ИСПОЛЬЗОВАТЬ [мастер]

ИДТИ

СОЗДАТЬ РОЛЬ СЕРВЕРА [младший администратор баз данных]

ИДТИ

В этом примере мы создаем новую роль сервера — «младший администратор базы данных».

2. Выполните следующий код, чтобы предоставить разрешения новой роли:

использовать [мастер]

ИДТИ

ПРЕДОСТАВЬТЕ СОЗДАНИЕ ЛЮБОЙ БАЗЫ ДАННЫХ --<< теперь можно создавать БД

ТО [младший администратор баз данных]

ИДТИ

В этом примере мы разрешаем новой роли «младший администратор базы данных» создавать базы данных.

GRANT VIEW ANY DATABASE --<< может просматривать только любую базу данных, но не таблицы

ТО [младший администратор баз данных]

ИДТИ

В этом примере команда «GRANT VIEW ANY DATABASE» используется для предоставления разрешения на уровне сервера, которое позволяет роли просматривать метаданные для любой базы данных на сервере. В данном случае мы предоставляем это разрешение созданной нами ранее роли сервера «младший администратор базы данных».

Однако важно отметить, что предоставление разрешения «ПРОСМОТР ЛЮБОЙ БАЗЫ ДАННЫХ» не дает пользователю или роли разрешения на доступ к каким-либо данным в базах данных — оно просто позволяет им видеть метаданные (такие как имена баз данных и схемы).

3. Добавьте логин или учетную запись пользователя в новую роль, выполнив следующий код:

--Добавить логины sql к новой роли сервера

ИЗМЕНИТЬ РОЛЬ СЕРВЕРА [младший администратор баз данных]

ДОБАВИТЬ УЧАСТНИКА [Доска]

ИДТИ

ИЗМЕНИТЬ РОЛЬ СЕРВЕРА [младший администратор баз данных]

ДОБАВИТЬ УЧАСТНИКА [Рима]

ИДТИ

В этом примере мы добавляем учетные записи «Papan» и «Rima» в качестве участников роли «младший администратор баз данных».

Заключение

Роли SQL Server предоставляют мощный инструмент для управления разрешениями в среде базы данных. Назначая роли пользователям, вы можете гарантировать, что они имеют соответствующий уровень доступа к нужным им данным, не предоставляя им ненужных привилегий. Независимо от того, управляете ли вы небольшой базой данных или крупной корпоративной системой, понимание того, как использовать роли SQL Server, является важным навыком, который может помочь вам поддерживать безопасность и целостность ваших данных.