如何在 Azure MS SQL Server 上创建有权访问所有数据库的登录名



我需要在可以访问该服务器上所有数据库的服务器上创建一个登录名。

我有两个 Azure 服务器:生产和暂存。我从舞台服务器上的生产服务器制作数据库的副本。然后我需要在这个新复制的数据库中插入一些测试数据。

复制过程是在 azure 自动化帐户中的 Runbook 上进行的,因此每次我想在数据库上执行 SQL 脚本时,都需要向服务器提供登录名和密码。

如果我在暂存服务器上创建登录名 TestLogin,然后将数据库从生产服务器复制到暂存,则此登录名无权访问新数据库。因此,我需要以管理员身份登录,并在这个新数据库中为TestLogin创建一个TestUser。 这不适用于 Azure:

GRANT CONTROL SERVER TO TestLogin;  

有什么方法可以授予TestLogin所有权限,以便它可以访问服务器上的所有数据库?

在 SQL Server 的一个实例中创建登录名并将任何角色分配给特定数据库上的此用户,然后将该数据库复制到另一个 SQL Server 实例时,数据库中有此用户,但在第二个 SQL Server 中没有该用户的登录名。这也称为"孤立用户"。这是一篇描述如何解决此问题的文章。

这在 Azure 上不起作用。您必须改用 ALTER USER。

正如您在评论中所说,您必须使用 admin 登录,然后您有权更改主数据库中的新用户,将用户设置为 DB 管理器或db_owner。

如果您只创建新的登录名或用户,并且没有授予它更多权限,则仅此登录名/用户并登录数据库,但无法访问任何数据库。

有关详细信息,请参阅控制和授予对 SQL 数据库和 SQL 数据仓库的数据库访问权限。

希望这有帮助。

最新更新