我需要使用 C# 为我的 Azure SQL 数据库创建一个包含的用户。我已经有以下用于创建数据库的代码:// Login to Azurevar credentials = UserTokenProvider.LoginSilentAsync(clientId, domainName, username, password).Result;// Create clientSqlManagementClient client = new SqlManagementClient(credentials){ SubscriptionId = subscriptionId};// Database parametersvar databaseParameters = new Microsoft.Azure.Management.Sql.Models.Database(){ Location = "ukwest", ElasticPoolId = elasticPoolId,};// Create databasevar 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 中是否有一些等效代码可用做这个?
1 回答
九州编程
TA贡献1785条经验 获得超4个赞
从概念上讲,您应该将 Azure SQL 数据库视为具有(至少)2 个您可以操作的不同层:
有一个 REST API 用于控制操作,例如创建数据库、更改其保留大小、恢复副本等。
有一个用于数据库容器内操作的 T-SQL 接口,从创建表到插入行等。
这两个表面之间可能存在一些重叠 - 在传统的 SQL Server 中,所有这些都在后一个 T-SQL 接口中公开。其中一些命令在 Azure SQL 数据库中启用,它们在内部为你调用 REST API。
请注意,对 REST API 的操作使用与 Azure 门户基础结构关联的凭据。在数据库中,您可以映射到 SQL 登录名/用户,但您也可以拥有与 Azure 身份完全不关联的 SQL 登录名/用户。
Net-net:您应该使用 C# SQLClient 连接到数据库,并使用具有足够权限的经过身份验证的用户(在您的情况下,可能是管理员帐户或 sa)运行这些命令,以设置新用户和角色信息。
- 1 回答
- 0 关注
- 96 浏览
添加回答
举报
0/150
提交
取消