我有一个带有数据库的Azure SQL服务器实例:
在“MyApplication”db中,我已经创建了一个名为“MyUser”的用户。 用户“MyUser”无法看到“master”db。它唯一的权限是“MyApplication”db。
我想授予“MyUser”权限以访问“master”数据库。我怎么能做到这一点?
答案 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缺陷。