Поделиться через


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

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure платформенная система аналитики (PDW)

Примечание.

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

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

Примечание.

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

Необходимые компоненты

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

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

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

Создает вход

Для доступа к ядро СУБД пользователям требуется имя входа. Имя входа может представлять удостоверение пользователя как учетную запись 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

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

Следующие шаги

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

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