Экспорт (0) Печать
Развернуть все

Управление базами данных и именами входа в базе данных SQL Azure

Обновлено: Февраль 2014 г.

В Microsoft База данных SQL Microsoft Azure при регистрации в качестве пользователя службы процесс подготовки к использованию создает сервер База данных SQL Azure, базу данных под именем master и имя входа, которое является именем субъекта серверного уровня на конкретном сервере База данных SQL Azure. Это имя входа аналогично имени субъекта серверного уровня sa на локальном экземпляре SQL Server. 

Учетная запись субъекта серверного уровня в База данных SQL Azure всегда имеет разрешения на управление всеми параметрами безопасности уровня сервера и уровня базы данных. В этом разделе описаны возможности использования субъекта серверного уровня и других учетных записей для управления именами входа и базами данных в База данных SQL Microsoft Azure.  

Администрирование безопасности в База данных SQL Microsoft Azure аналогично администрированию безопасности в локальном экземпляре SQL Server. Управление безопасностью на уровне базы данных практически полностью идентично, если не рассматривать различия в возможности использования нескольких параметров. Так как базы данных База данных SQL Azure могут размещаться на одном или нескольких физических компьютерах, в База данных SQL Microsoft Azure используется другая стратегия администрирования на уровне сервера. В следующей таблице приведена сводка различий в администрировании безопасности на локальном экземпляре SQL Server и в База данных SQL Microsoft Azure.

 

Различие Локальный SQL Server База данных SQL Microsoft Azure

Где ведется управление безопасностью уровня сервера

Папка Безопасность в обозревателе объектов среды SQL Server Management Studio

База данных master

Роль безопасности уровня сервера для создания имен входа

Предопределенная роль сервера securityadmin

Дополнительные сведения см. в разделе Роли уровня сервера.

Роль базы данных loginmanager в базе данных master

Команды для управления именами входа

CREATE LOGIN

ALTER LOGIN

DROP LOGIN

CREATE LOGIN

ALTER LOGIN

DROP LOGIN

(Имеются некоторые ограничения на параметры, и необходимо подключение к базе данных master)

Представление, в котором отображаются все имена входа

sys.syslogins (sys.sql_logins для имен входа проверки подлинности SQL Server)

sys.sql_logins

(Необходимо подключение к базе данных master)

Роль уровня сервера для создания баз данных

Предопределенная роль базы данных dbcreator

Дополнительные сведения см. в разделе Роли уровня сервера.

Роль базы данных dbmanager в базе данных master

Команда для создания базы данных

CREATE DATABASE

CREATE DATABASE

(Имеются некоторые ограничения на параметры, и необходимо подключение к базе данных master)

Удаление баз данных

DROP DATABASE

DROP DATABASE

Если пользователь является членом роли dbmanager, у него имеется разрешение DROP для любой базы данных, вне зависимости от того, какой пользователь первоначально создал эту базу данных.

Представление, в котором перечислены все базы данных

sys.databases

(представление)

sys.databases

(Необходимо подключение к базе данных master)

Сервер База данных SQL Azure задает дополнительный уровень абстракции, на котором определяется группирование баз данных. Базы данных, связанные с конкретным сервером База данных SQL Azure, могут размещаться на разных физических компьютерах в центре обработки данных Microsoft. Для администрирования на уровне сервера всеми этими базами данных используется отдельная база данных с именем master.

База данных master содержит имена входа и сведения о том, какие имена входа имеют разрешения на создание баз данных или других имен входа. Для выполнения операций CREATE, ALTER или DROP с именами входа или базами данных необходимо подключение к базе данных master. База данных master также содержит представления sys.sql_logins и sys.databases, которые можно использовать для просмотра соответственно имен входа и баз данных.

noteПримечание
Команда USE для переключения между базами данных не поддерживается. Устанавливайте соединение непосредственно с целевой базой данных.

Управление безопасностью пользователей и объектов на уровне данных в База данных SQL Microsoft Azure аналогично тем же действиям в локальном экземпляре SQL Server. Различия имеются только в параметрах, принимаемых соответствующими командами. Дополнительные сведения см. в разделе Справка по Transact-SQL (Transact-SQL).

Для управления именами входа используйте имя входа субъектов серверного уровня, соединившись с базой данных master. Можно использовать инструкции CREATE LOGIN, ALTER LOGIN и DROP LOGIN. В следующем примере создается имя входа login1.

-- first, connect to the master database
CREATE LOGIN login1 WITH password='<ProvidePassword>';
noteПримечание
При создании имени входа необходимо использовать надежный пароль. Дополнительные сведения см. в разделе Надежные пароли.

Для подключения к База данных SQL Microsoft Azure с использованием созданных имен входа сначала необходимо предоставить каждому из таких имен входа разрешения уровня базы данных, используя команду CREATE USER. Дополнительные сведения см. в разделе Предоставление имени входа разрешений уровня базы данных.

В некоторых средствах поток табличных данных (TDS) реализован иначе, поэтому может потребоваться добавление имени сервера База данных SQL Azure к имени входа в строке подключения в формате <login>@<server>. В таких случаях разделяйте имя входа и имя сервера База данных SQL Azure символом @. Например, если имя входа называется login1, а полностью указанное имя сервера База данных SQL Azure выглядит как servername.database.windows.net, то параметр имени пользователя в строке подключения будет следующим: login1@servername. Это правило накладывает ограничения на состав символов в имени входа. Дополнительные сведения см. в разделе Инструкция CREATE LOGIN (Transact-SQL).

Чтобы имена входа, которые не являются именем входа субъекта серверного уровня, могли управлять безопасностью уровня сервера, в База данных SQL Microsoft Azure реализованы две роли безопасности: loginmanager для создания имен входа и dbmanager для создания баз данных. В эти роли баз данных можно добавить только пользователей из базы данных master.

noteПримечание
Для создания имен входа или баз данных требуется подключение к базе данных master (которая является логическим представлением master).

Аналогично предопределенной роли сервера securityadmin в локальном экземпляре SQL Server, роль базы данных loginmanager в База данных SQL Microsoft Azure имеет разрешения для создания имен входа. Создавать новые имена входа могут только имена входа субъекта серверного уровня (созданные процессом провизионирования) и члены роли loginmanager.

Роль базы данных База данных SQL Microsoft Azure dbmanager аналогична предопределенной роли сервера dbcreator в локальном экземпляре SQL Server. Создавать базы данных могут только имена входа субъекта серверного уровня (созданные процессом провизионирования) и члены роли dbmanager. После включения пользователя в роль базы данных dbmanager он может создавать базы данных с применением команды База данных SQL Azure CREATE DATABASE, но эту команду необходимо выполнять в базе данных master. Дополнительные сведения см. в разделе Инструкция CREATE DATABASE (Transact-SQL).

Чтобы создать имя входа и связанного с ним пользователя, способного создавать базы данных или другие учетные записи, выполните следующие действия.

  1. Подключитесь к базе данных master с помощью учетных данных имени входа субъекта серверного уровня (созданного процессом провизионирования) или учетных данных существующего члена роли базы данных loginmanager.

  2. Создайте имя входа с помощью команды CREATE LOGIN. Дополнительные сведения см. в разделе Инструкция CREATE LOGIN (Transact-SQL).

  3. Создайте нового пользователя для этого имени входа в базе данных master с помощью команды CREATE USER. Дополнительные сведения см. в разделе Инструкция CREATE USER (Transact-SQL).

  4. Используйте хранимую процедуру sp_addrolememeber, чтобы добавить нового пользователя в роль базы данных dbmanager, loginmanager или обе эти роли.

В следующем примере кода показано создание имени входа login1 и соответствующего пользователя базы данных под именем login1User, который может создавать базы данных и другие имена входа при подключении к базе данных master:

-- first, connect to the master database
CREATE LOGIN login1 WITH password='<ProvidePassword>';
CREATE USER login1User FROM LOGIN login1;
EXEC sp_addrolemember 'dbmanager', 'login1User';
EXEC sp_addrolemember 'loginmanager', 'login1User';
noteПримечание
При создании имени входа необходимо использовать надежный пароль. Дополнительные сведения см. в разделе Надежные пароли.

Все имена входа необходимо создавать в базе данных master. После создания имени входа можно создать для этого имени входа учетную запись пользователя в другой базе данных. База данных SQL Microsoft Azure также поддерживает роли баз данных аналогично локальным экземплярам SQL Server.

Чтобы создать учетную запись пользователя в другой базе данных, если имя входа или база данных не созданы, выполните следующие действия.

  1. Подключитесь к базе данных master (с именем входа, входящим в роли loginmanager и dbmanager).

  2. Создайте новое имя входа с помощью команды CREATE LOGIN. Дополнительные сведения см. в разделе Инструкция CREATE LOGIN (Transact-SQL). Проверка подлинности Windows не поддерживается.

  3. Создайте новую базу данных с помощью команды CREATE DATABASE. Дополнительные сведения см. в разделе Инструкция CREATE DATABASE (Transact-SQL).

  4. Установите соединение с новой базой данных (используя имя входа, создавшее эту базу данных).

  5. Создайте нового пользователя в новой базе данных с помощью команды CREATE USER. Дополнительные сведения см. в разделе Инструкция CREATE USER (Transact-SQL).

В следующем примере кода показано создание имени входа login1 и базы данных database1.

-- first, connect to the master database
CREATE LOGIN login1 WITH password='<ProvidePassword>';
CREATE DATABASE database1;
noteПримечание
При создании имени входа необходимо использовать надежный пароль. Дополнительные сведения см. в разделе Надежные пароли.

В следующем примере показано создание пользователя базы данных login1User в базе данных database1, который соответствует имени входа login1.

-- Establish a new connection to the database1 database
CREATE USER login1User FROM LOGIN login1;

Эта модель разрешений уровня базы данных в База данных SQL Microsoft Azure совпадает с аналогичной моделью в локальных экземплярах SQL Server. Дополнительные сведения см. в следующих разделах электронной документации по SQL Server.

Управление доступом и удостоверениями (компонент Database Engine)

Инструкции по управлению именами входа, пользователями и схемами

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

noteПримечание
Связанные с безопасностью инструкции Transact-SQL в База данных SQL Microsoft Azure могут незначительно отличаться перечнем доступных параметров. Дополнительные сведения см. в разделе Справочник по Transact-SQL в базе данных SQL Azure.

Для просмотра имен входа и баз данных на сервере База данных SQL Azure используйте в базе данных master соответственно представления sys.sql_logins и sys.databases. В следующем примере показано отображение списка всех имен входа и баз данных на сервере База данных SQL Azure.

-- first, connect to the master database
SELECT * FROM sys.sql_logins;
SELECT * FROM sys.databases; 

См. также

Корпорация Майкрософт проводит интернет-опрос, чтобы выяснить ваше мнение о веб-сайте MSDN. Если вы желаете принять участие в этом интернет-опросе, он будет отображен при закрытии веб-сайта MSDN.

Вы хотите принять участие?
Показ:
© 2014 Microsoft