Azure SQL-创建范围为单个数据库的用户

Azure SQL-创建范围为单个数据库的用户,azure,azure-sql-database,Azure,Azure Sql Database,我原来发的。然而,这似乎不是正确的地方 我有一个Azure SQL Server,其中包括一个自定义数据库(我们称之为my_db)。到目前为止,我一直在使用服务器管理员凭据访问此数据库。然而,我想让它更安全。为了做到这一点,我想创建一个登录名/用户,该登录名/用户仅限于my_db。我尝试了以下几点: 在主机数据库上,通过服务器管理员凭据 使用CREATE login db_login和密码'somePassword'创建登录名 在我的其他数据库(my_db)上,使用服务器管理员凭据 使用从

我原来发的。然而,这似乎不是正确的地方

我有一个Azure SQL Server,其中包括一个自定义数据库(我们称之为
my_db
)。到目前为止,我一直在使用服务器管理员凭据访问此数据库。然而,我想让它更安全。为了做到这一点,我想创建一个登录名/用户,该登录名/用户仅限于
my_db
。我尝试了以下几点:

主机
数据库上,通过服务器管理员凭据

  • 使用
    CREATE login db_login和密码'somePassword'创建登录名
在我的其他数据库(
my_db
)上,使用服务器管理员凭据

  • 使用
    从login db\u login创建用户db\u login\u user创建用户
  • 通过以下语句授予读、写和所有者权限:
    • EXEC sp\u addrolember'db\u datareader'、'db\u login\u user'
    • EXEC sp\u addrolember'db\u datawriter'、'db\u login\u user'
    • EXEC sp\u addrolmember'db\u owner'、'db\u login\u user'
我现在正试图通过Azure Data Studio登录。然而,我得到了以下结果:

使用
db\u login\u用户时

用户“db\u Login\u user”登录失败

使用
db\u登录时

服务器主体“db_login”无法在当前安全上下文下访问数据库“my_db”。无法打开登录请求的数据库“my_db”。登录失败。用户“db_Login”的登录失败

我可以使用服务器管理凭据成功访问数据库。然而,再一次,我试图让这更安全。此时,我不明白为什么不能使用新用户/登录名连接到数据库。此外,我不明白我是否应该尝试使用
db\u login
db\u login\u user
登录

如何创建凭据仅限于服务器上单个数据库的用户


谢谢大家!

您需要在两个数据库上运行下面的查询(主数据库以及my_db),然后尝试使用您在创建登录时提供的登录名“db_login”和密码


从login db\u login创建用户db\u login\u USER

您应该创建一个包含的数据库用户

在包含的数据库用户模型中,主数据库中不存在登录名。相反,身份验证过程发生在用户数据库中,并且用户数据库中的数据库用户在主数据库中没有关联的登录名

这些概念被记录在案

在您的情况下,可以在my_db数据库上运行以下语句

CREATE USER db_login_user WITH PASSWORD = 'enterStrongPassword@1234';
GO

ALTER ROLE db_datareader ADD MEMBER db_login_user;
ALTER ROLE db_datawriter ADD MEMBER db_login_user;
ALTER ROLE db_owner ADD MEMBER db_login_user;

在连接下进入Azure Data Studio时,我会指定服务器下的FQN、身份验证类型(使用带有MFA的AAD)和数据库名称。连接。如果您使用的是SSMS数据库引擎连接,“选项…”连接属性将允许您指定目标数据库名称。包含/单个用户是MS推荐的方式。可能重复/相关: