授予对主db的访问权限

时间:2016-07-10 11:12:52

标签: sql-server azure azure-sql-database

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

  1. master - 一如既往
  2. MyApplication - 我的自定义数据库
  3. 在“MyApplication”db中,我已经创建了一个名为“MyUser”的用户。 用户“MyUser”无法看到“master”db。它唯一的权限是“MyApplication”db。

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

1 个答案:

答案 0 :(得分:4)

您确定他们现在无法看到Master数据库吗?可能是您已经创建了一个数据库作用域用户。

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

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

CREATE LOGIN youruser WITH PASSWORD='SomePassword'
CREATE USER youruser FOR LOGIN youruser WITH DEFAULT_SCHEMA=[dbo]

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

CREATE USER youruser FOR LOGIN youruser

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

通过执行这些步骤,用户与主数据库和目标数据库的登录名相同。请注意,如果将数据库移动到另一台服务器(例如因为您因某种原因将其恢复),则使用相同的登录名执行此操作,新服务器上将不存在登录,并且您将获得权限错误。有办法添加登录并清理SID缺陷。