Как создать отдельного пользователя в базе данных SQL Azure с помощью C #? - PullRequest
0 голосов
/ 23 июня 2019

Мне нужно создать отдельного пользователя для моей базы данных SQL Azure, используя C #. У меня уже есть следующий код для создания базы данных:

// Login to Azure
var credentials = UserTokenProvider.LoginSilentAsync(clientId, domainName, username, password).Result;

// Create client
SqlManagementClient client = new SqlManagementClient(credentials)
{
    SubscriptionId = subscriptionId
};

// Database parameters
var databaseParameters = new Microsoft.Azure.Management.Sql.Models.Database()
{
    Location = "ukwest",
    ElasticPoolId = elasticPoolId,

};

// Create database
var dbResponse = client.Databases.CreateOrUpdate(resourceGroupName, serverName, databaseName, databaseParameters);

Я нашел следующий сценарий SQL, который можно использовать для создания отдельного пользователя с помощью SQL Management Studio, но для этого необходимо вручную подключиться к базе данных, для которой вы хотите создать пользователя:

CREATE USER [databaseUser] WITH PASSWORD = 'xxxxxxxxxxx';
ALTER ROLE [db_datareader] ADD MEMBER [databaseUser]
ALTER ROLE [db_datawriter] ADD MEMBER [databaseUser]

Итак, как я могу использовать сценарий SQL в своем коде C # для подключения к базе данных после того, как она была создана, чтобы затем создать пользователя SQL для этой базы данных или есть какой-то эквивалентный код, доступный в Microsoft.Azure. Management.Sql.SqlManagementClient за это?

1 Ответ

4 голосов
/ 23 июня 2019

Концептуально вы должны думать о базе данных SQL Azure как о наличии (как минимум) 2 разных уровней, на которых вы можете работать:

  • Существует REST API для управляющих операций, таких как создание базы данных, изменение размера резервирования, восстановление копии и т. Д.
  • Существует интерфейс T-SQL для операций внутри контейнера базы данных, от создания таблиц до вставки строк и т. Д.

Возможны некоторые совпадения на этих двух поверхностях - в традиционном SQL Server все это отображается в последнем интерфейсе T-SQL. Некоторые из этих команд включены в базе данных SQL Azure, и они сами вызывают REST API для вас.

Обратите внимание, что для операций с REST API используются учетные данные, связанные с инфраструктурой портала Azure. Внутри базы данных вы можете иметь сопоставления с логинами / пользователями SQL, но у вас также могут быть логины / пользователи SQL, которые вообще не связаны с удостоверениями Azure.

Net-net: вам следует подключиться к базе данных с помощью C # SQLClient и запустить эти команды с использованием аутентифицированного пользователя с достаточными разрешениями (в вашем случае, вероятно, с учетной записью администратора или sa), чтобы получить информацию о новом пользователе и роли. .

Вот пример того, как настроить C # SQLClient

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