授予对主数据库的访问权限

No1*_*ver 3 sql-server azure azure-sql-database

我有一个带有数据库的 Azure SQL 服务器实例:

  1. 大师 - 一如既往
  2. MyApplication - 我的自定义数据库

在“MyApplication”数据库中,我已经创建了一个名为“MyUser”的用户。用户“MyUser”无法看到“master”数据库。它拥有的唯一权限是“MyApplication”数据库。

我想授予“MyUser”访问“master”数据库的权限。我怎么能做到这一点?

Mik*_*eWo 6

您确定他们现在看不到 Master 数据库吗?可能是您创建了一个数据库范围的用户。

您可以在 master 上创建登录名,然后在 master 和目标应用程序数据库中创建用户。

在主数据库中运行以下命令:

CREATE LOGIN youruser WITH PASSWORD='SomePassword'
CREATE USER youruser FOR LOGIN youruser WITH DEFAULT_SCHEMA=[dbo]
Run Code Online (Sandbox Code Playgroud)

这将在逻辑服务器上创建登录名,并在 master 数据库中为该登录名创建一个用户。然后,您可以打开与目标数据库的连接并运行以下命令以创建与同一登录名绑定的用户。

CREATE USER youruser FOR LOGIN youruser
Run Code Online (Sandbox Code Playgroud)

在目标数据库中,您将能够将它们添加到您想要的任何角色。在 master 中,他们不会拥有与“服务器级主体登录”相同的权限。

通过执行这些步骤,用户对主数据库和目标数据库的登录名相同。请注意,如果数据库被移动到不同的服务器(例如因为您出于某种原因在那里恢复它),则通过使用相同的登录名执行此操作,新服务器上将不存在该登录名,并且您将收到权限错误。有多种方法可以添加登录名并清除 SID 差异。