gpt4 book ai didi

c# - 如何使用 C# 在 Azure SQL 数据库上创建包含用户?

转载 作者:行者123 更新时间:2023-12-03 04:49:39 24 4
gpt4 key购买 nike

我需要使用 C# 为我的 Azure SQL 数据库创建一个包含用户。我已经有以下用于创建数据库的代码:

// 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]

那么,在创建数据库后,如何使用 C# 代码中的 SQL 脚本连接数据库,然后为该数据库创建包含的 SQL 用户,或者 Microsoft.Azure 中是否有可用的等效代码。 Management.Sql.SqlManagementClient 用于执行此操作?

最佳答案

从概念上讲,您应该将 Azure SQL 数据库视为具有(至少)2 个可以操作的不同层:

  • 有一个 REST API 用于控制操作,例如创建数据库、更改其预留大小、恢复副本等。
  • 有一个 T-SQL 接口(interface),用于数据库容器内的操作,从创建表到插入行等。

这两个表面之间可能存在一些重叠 - 在传统 SQL Server 中,所有这些都在后面的 T-SQL 接口(interface)中公开。其中一些命令在 Azure SQL 数据库中启用,并且它们在内部为您调用 REST API。

请注意,对 REST API 的操作使用与 Azure 门户基础结构关联的凭据。在数据库中,您可以映射到 SQL 登录名/用户,但也可以拥有与 Azure 身份根本不关联的 SQL 登录名/用户。

Net-net:您应该使用 C# SQLClient 连接到数据库,并使用具有足够权限的经过身份验证的用户(在您的情况下,可能是管理员帐户或 sa)运行这些命令,以设置新用户和角色信息.

Here's a an example on how to set up C# SQLClient

关于c# - 如何使用 C# 在 Azure SQL 数据库上创建包含用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56724274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com