将默认数据库设置为用户 SQL Server (Azure)

Yoj*_*les 5 c# sql-server azure azure-sql-database

我正在尝试在 Azure SQL Server 中使用 C# 创建数据库用户。但我需要设置其默认数据库 ( DEFAULT_DATABASE),但该脚本在 Azure 上不起作用。

有谁知道我该怎么做?

CREATE USER newlogin FOR LOGIN newlogin;
ALTER LOGIN newlogin WITH DEFAULT_DATABASE = myDatabase;
Run Code Online (Sandbox Code Playgroud)

但它会抛出一个错误:

此版本的 SQL Server 不支持关键字或语句选项“default_database”。

创建用户并尝试连接到 SQL Server 后,出现以下错误:

在此输入图像描述

Kit*_*124 3

这可以在 Azure 中完成,但正如@Larnu 所暗示的那样,这并不完全简单。他们的答案中给出的建议适用于单次登录,但在任何生产场景中可能都不实用或不理想。我建议执行以下操作:

  1. 在 Active Directory 中创建一个组,其中包含您希望应用此行为的用户;将适当的成员分配到该组
  2. 将组作为新登录名添加到目标 Azure Sql Server;更改登录名以将适当的数据库设置为默认值
  3. 将组作为新用户添加到之前分配的默认数据库中


Azure Sql Server 中的代码与本地代码略有不同:

-- run in [master]
create login [YourGroupName] from external provider;
alter login [YourGroupName] with default_database = [YourDefaultDatabase];

-- run in [YourDefaultDatabase]
create user [YourGroupName] from login [YourGroupName];
Run Code Online (Sandbox Code Playgroud)


编辑:

Azure Sql Server 中的用户通常包含在单个数据库中,甚至不存在于“服务器级别”;更多信息可以在这里找到。如果您只想在 Azure Sql Server 数据库中创建用户,那么您所需要做的就是以create user [YourUserName] with password = 'YourSecret';. 请注意,这假设您已经连接到要在其中创建用户的数据库。如果您处于诸如 之类的上下文中[master],并且无法更改连接字符串,那么您需要首先使用ChangeDatabase