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

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

Предоставление пользователю доступа к базе данных включает три шага. Вначале создается имя входа. Имя входа дает пользователю возможность подключиться к компоненту Компонент 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и нажмите кнопку OK , чтобы открыть программу "Управление компьютером".
  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  

В данном сценарии Mary имеет доступ только к таблице Products посредством хранимой процедуры. Если Mary нужно выполнять инструкцию SELECT к представлению, нужно выполнить инструкцию GRANT SELECT ON vw_Names TO Mary. Чтобы удалить доступ к объектам базы данных, воспользуйтесь инструкцией REVOKE.

Примечание

Если таблицей, представлением или хранимой процедурой не владеет та же схема, процесс предоставления прав становится более сложным.

Об инструкции GRANT

Нужно иметь разрешение на EXECUTE, чтобы выполнить хранимую процедуру. Нужно иметь разрешения на SELECT, INSERT, UPDATE и DELETE, чтобы получить доступ к данным и изменять их. Инструкция GRANT также используется для других разрешений, например для разрешений на создание таблиц.

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

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

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