Урок 2. Настройка разрешений для объектов базы данных
Применимо к: SQL Server Azure SQL Database
Управляемый экземпляр SQL Azure
Analytics Platform System (PDW)
Предоставление пользователю доступа к базе данных включает три шага. Вначале создается имя входа. Имя входа дает пользователю возможность подключиться к компоненту Компонент SQL Server Database Engine. Затем имя входа настраивается как пользователь в заданной базе данных. Наконец, предоставляются пользовательские разрешения на объекты базы данных. В этом занятии показаны все три шага, а также создание представления и хранимой процедуры в виде объекта.
Примечание
В этом занятии используются объекты, созданные в разделе Урок 1. Создание объектов баз данных. Пройдите урок 1, прежде чем переходить к уроку 2.
Предварительные требования
Для работы с этим руководством необходима среда SQL Server Management Studio и доступ к экземпляру SQL Server.
- Установите SQL Server Management Studio.
Если у вас нет доступа к экземпляру SQL Server, выберите свою платформу в следующих ссылках. При выборе проверки подлинности SQL используйте учетные данные SQL Server.
- Windows: скачать выпуск SQL Server 2017 Developer Edition.
- Linux: скачайте SQL Server 2017 в контейнер.
Мы слушаем! Если вы обнаружили в этой статье устаревшие или недостоверные сведения, например инструкции или пример кода, сообщите нам. Можно воспользоваться кнопкой Эта страница в разделе Отзывы внизу страницы. Обычно мы читаем отзывы про материалы по SQL на следующий день. Благодарим вас.
Создает вход
Чтобы получить доступ к компоненту Компонент Database Engine, необходимо иметь имя входа. Имя входа может идентифицировать пользователя как учетную запись 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
не является доменной учетной записью, это имя пользователя может быть принято только на данном компьютере.
Предоставление доступа к базе данных
Теперь Мария имеет доступ к этому экземпляру SQL Server, но не имеет разрешения на доступ к базам данных. Она даже не имеет доступа к своей базе данных TestData
по умолчанию, пока вы не авторизуете ее в качестве пользователя базы данных.
Чтобы предоставить Марии доступ, переключитесь в TestData
базу данных, а затем используйте инструкцию CREATE USER, чтобы сопоставить ее имя входа с пользователем с именем Mary.
Создание пользователя в базе данных
Введите и выполните следующие инструкции (заменяя computer_name
на имя компьютера), чтобы предоставить пользователю Mary
доступ к базе данных TestData
.
USE [TestData];
GO
CREATE USER [Mary] FOR LOGIN [computer_name\Mary];
GO
Теперь пользователь Mary имеет доступ к 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 также используется для других разрешений, например для разрешений на создание таблиц.
Дальнейшие действия
В следующей статье вы узнаете, как удалить объекты базы данных, созданные в других уроках.
Дополнительные сведения см. в следующей статье: