Урок 2. Настройка разрешений для объектов базы данных

Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAnalytics Platform System (PDW)

Примечание

Схема обучения Приступая к работе с запросами с помощью Transact-SQL содержит более подробные материалы, а также практические примеры.

Предоставление пользователю доступа к базе данных включает три шага. Вначале создается имя входа. Имя входа дает пользователю возможность подключиться к компоненту Компонент SQL Server Database Engine. Затем имя входа настраивается как пользователь в заданной базе данных. Наконец, предоставляются пользовательские разрешения на объекты базы данных. В этом занятии показаны все три шага, а также создание представления и хранимой процедуры в виде объекта.

Примечание

В этом занятии используются объекты, созданные в разделе Урок 1. Создание объектов баз данных. Пройдите урок 1, прежде чем переходить к уроку 2.

Предварительные требования

Для работы с этим руководством необходима среда SQL Server Management Studio и доступ к экземпляру SQL Server.

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

Мы слушаем! Если вы обнаружили в этой статье устаревшие или недостоверные сведения, например инструкции или пример кода, сообщите нам. Можно воспользоваться кнопкой Эта страница в разделе Отзывы внизу страницы. Обычно мы читаем отзывы про материалы по SQL на следующий день. Благодарим вас.

Создает вход

Чтобы получить доступ к компоненту Компонент Database Engine, необходимо иметь имя входа. Имя входа может идентифицировать пользователя как учетную запись Windows или как члена группы Windows, или имя входа может быть именем входа SQL Server , которое существует только в SQL Server. При возможности используйте проверку подлинности Windows.

По умолчанию администраторы компьютера имеют полный доступ к SQL Server. Для этого занятия нужно иметь пользователя с меньшим правом доступа; следовательно, вы создадите новую локальную учетную запись проверки подлинности Windows на компьютере. Чтобы сделать это, нужно быть администратором на своем компьютере. Затем вы предоставляете новому пользователю доступ к SQL Server.

Создание учетной записи Windows

  1. Нажмите кнопку Пуск, выберите Выполнить, в поле Открыть введите %SystemRoot%\system32\compmgmt.msc /s и нажмите кнопку ОК , чтобы открыть программу управления компьютером.
  2. В разделе Системные инструменты разверните узел Локальные пользователи и группы, щелкните правой кнопкой мыши Элемент Пользователи, а затем выберите Новый пользователь.
  3. В поле Имя пользователя введите Mary.
  4. В поле Пароль и Подтверждение пароля введите надежный пароль, а затем выберите Создать , чтобы создать локального пользователя 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

Теперь пользователь 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 также используется для других разрешений, например для разрешений на создание таблиц.

Дальнейшие действия

В следующей статье вы узнаете, как удалить объекты базы данных, созданные в других уроках.

Дополнительные сведения см. в следующей статье: