Урок 2. Настройка разрешений для объектов базы данных
Применимо: база данных SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Платформенная система аналитики (PDW) в Microsoft Fabric
Примечание.
Схема обучения Transact-SQL предоставляет более подробное содержимое, а также практические примеры.
Предоставление пользователю доступа к базе данных включает три шага. Вначале создается имя входа. Имя входа позволяет пользователю подключаться к ядро СУБД SQL Server. Затем имя входа настраивается как пользователь в заданной базе данных. Наконец, предоставляются пользовательские разрешения на объекты базы данных. В этом занятии показаны все три шага, а также создание представления и хранимой процедуры в виде объекта.
Примечание.
В этом занятии используются объекты, созданные в разделе Урок 1. Создание объектов баз данных. Пройдите урок 1, прежде чем переходить к уроку 2.
Необходимые компоненты
Для работы с этим руководством необходима среда SQL Server Management Studio и доступ к экземпляру SQL Server.
- Установите SQL Server Management Studio.
Если у вас нет доступа к экземпляру SQL Server, выберите свою платформу в следующих ссылках. При выборе проверки подлинности SQL используйте учетные данные SQL Server.
- Windows: скачивание SQL Server 2022 Developer Edition.
- Linux: скачайте SQL Server 2022 в контейнере.
Мы слушаем: если вы нашли что-то устаревшее или неправильное в этой статье, например шаг или пример кода, сообщите нам. Можно воспользоваться кнопкой Эта страница в разделе Отзывы внизу страницы. Обычно мы читаем отзывы про материалы по SQL на следующий день. Благодарим вас.
Создает вход
Для доступа к ядро СУБД пользователям требуется имя входа. Имя входа может представлять удостоверение пользователя как учетную запись Windows или как член группы Windows, или имя входа может быть именем входа SQL Server, которое существует только в SQL Server. При возможности используйте проверку подлинности Windows.
По умолчанию администраторы на компьютере имеют полный доступ к SQL Server. Для этого занятия нужно иметь пользователя с меньшим правом доступа; следовательно, вы создадите новую локальную учетную запись проверки подлинности Windows на компьютере. Чтобы сделать это, нужно быть администратором на своем компьютере. Затем вы предоставляете новому пользователю доступ к SQL Server.
Создание учетной записи Windows
- Нажмите кнопку "Пуск", в поле "Открыть" введите
%SystemRoot%\system32\compmgmt.msc /s
и нажмите кнопку "ОК", чтобы открыть программу "Управление компьютерами". - В разделе "Системные инструменты" разверните узел "Локальные пользователи и группы", щелкните правой кнопкой мыши "Пользователи" и выберите "Новый пользователь".
- В поле Имя пользователя введите Mary.
- В поле "Пароль и подтверждение пароля" введите надежный пароль и нажмите кнопку "Создать", чтобы создать локального пользователя Windows.
Создание имени для входа SQL
В окне Редактор запросов SQL Server Management Studio введите и выполните следующий код, заменяющий computer_name
имя компьютера. FROM WINDOWS
указывает, что Windows проходит проверку подлинности пользователя. Необязательный DEFAULT_DATABASE
аргумент подключается Mary
к TestData
базе данных, если строка подключения не указывает другую базу данных. Эта инструкция рассматривает точку с запятой в виде необязательного завершения инструкции языка Transact-SQL.
CREATE LOGIN [computer_name\Mary]
FROM WINDOWS
WITH DEFAULT_DATABASE = [TestData];
GO
Это разрешает пользователю Mary
имя пользователя, прошедшее проверку подлинности на компьютере, для доступа к этому экземпляру SQL Server. Если на компьютере существует несколько экземпляров SQL Server, необходимо создать имя входа на каждом экземпляре, который Mary
должен получить доступ.
Примечание.
Поскольку Mary
не является доменной учетной записью, это имя пользователя может быть принято только на данном компьютере.
Предоставление доступа к базе данных
Теперь Mary
у учетной записи есть доступ к этому экземпляру SQL Server, но у нее нет разрешения на доступ к базам данных. Учетная запись даже не имеет доступа к базе данных TestData
по умолчанию, пока вы не авторизуете учетную запись в качестве пользователя базы данных.
Чтобы предоставить Mary
доступ, переключитесь в TestData
базу данных и используйте инструкцию CREATE USER, чтобы сопоставить имя входа с именем Mary
пользователя.
Создание пользователя в базе данных
Введите и выполните следующие инструкции (заменяя computer_name
на имя компьютера), чтобы предоставить пользователю Mary
доступ к базе данных TestData
.
USE [TestData];
GO
CREATE USER [Mary] FOR LOGIN [computer_name\Mary];
GO
Теперь Мэри имеет доступ как к SQL Server, так и TestData
к базе данных.
Создание представлений и хранимых процедур
Как администратор, вы можете выполнить SELECT из Products
таблицы и vw_Names
представления и выполнить процедуру pr_Names
, однако Мэри не может. Чтобы предоставить Mary необходимые разрешения, воспользуйтесь инструкцией GRANT.
Предоставление разрешений на хранимые процедуры
Выполните следующую инструкцию, чтобы предоставить Mary
разрешение на EXECUTE
для хранимой процедуры pr_Names
.
GRANT EXECUTE ON pr_Names TO Mary;
GO
В этом сценарии Мэри может получить доступ только к Products
таблице с помощью хранимой процедуры. Если Mary нужно выполнять инструкцию SELECT к представлению, нужно выполнить инструкцию GRANT SELECT ON vw_Names TO Mary
. Чтобы удалить доступ к объектам базы данных, воспользуйтесь инструкцией REVOKE.
Примечание.
Если таблицей, представлением или хранимой процедурой не владеет та же схема, процесс предоставления прав становится более сложным.
Об инструкции GRANT
Нужно иметь разрешение на EXECUTE, чтобы выполнить хранимую процедуру. Нужно иметь разрешения на SELECT, INSERT, UPDATE и DELETE, чтобы получить доступ к данным и изменять их. Инструкция GRANT также используется для других разрешений, например для разрешений на создание таблиц.
Следующие шаги
В следующей статье вы узнаете, как удалить объекты базы данных, созданные в других уроках.
Дополнительные сведения см. в следующей статье: