【问题标题】:Cannot open database "master" on SQL Azure无法在 SQL Azure 上打开数据库“master”
【发布时间】:2016-05-18 03:28:54
【问题描述】:

TITLE:连接到服务器

无法连接到 tcp:ohimryXusa.database.windows.net,1433。

附加信息:

你好,

我有一个 SQL Azure 数据库。这个数据库有一个我想用来访问它的用户名/登录名。当我尝试通过 SQL Server Database Management Studio 连接到数据库时,我收到一条错误消息:

Cannot open database "master" requested by the login. The login failed.
Login failed for user 'mydbusername'.
This session has been assigned a tracing ID of '00000000-0000-0000-0000-000000000000'.  Provide this tracing ID to customer support when you need assistance. (Microsoft SQL Server, Error: 4060)

我有其他登录名可以成功连接到数据库。我尝试在我的数据库上执行以下操作,以确保有一个用户:

CREATE USER mydbusername

我收到一条错误消息:

Msg 15023, Level 16, State 1, Line 1
User, group, or role 'mydbusername' already exists in the current database

我通过登录主数据库验证了用户的存在。到了那里,我跑了: SELECT * FROM sys.sql_logins;

我想确保“mydbusername”可以访问数据库。所以我用一个更高级的帐户登录到我的数据库并运行:

EXEC sp_addrolemember 'db_datareader', 'mydbusername'
EXEC sp_addrolemember 'db_datawriter', 'mydbusername'
EXEC sp_addrolemember 'db_owner', 'mydbusername'

消息说:命令成功完成。

此时,我们知道 a) 有一个名为“mydbusername”的用户。 b) 有一个名为“mydbusername”的登录名。 c) 我们知道“mydbusername”对数据库具有“db_datareader”、“db_datawriter”和“db_owner”权限。

我尝试通过网络上的管理屏幕登录。我能够成功登录并执行查询。但是,当我尝试通过 SQL Server Management Studio 登录时,我收到了上面的消息。我正在使用

mydbusername@ohimryXusa 用于“登录”字段。我已验证密码正确。我还验证了服务器名称是正确的。我究竟做错了什么?我真的需要这个,因为我从我的代码中得到了错误。谢谢!

【问题讨论】:

  • 远射 - 但我怀疑 Azure 是否允许您访问主数据库(存储有关 SQL 实例上的用户数据库的所有信息的数据库)。您的对话框中的数据库名称不正确吗?
  • 每个“Windows Azure SQL 数据库服务器”总是有一个“主”数据库。这个数据库确实被命名为“master”,它保存了当前服务器的所有用户凭据、防火墙规则、数据库使用统计信息。就 SQL Server 的常规本地安装而言,它不是 Master DB,但它是一个主数据库。
  • 一个类似的问题回答了这个问题:stackoverflow.com/questions/6476828/…Chris

标签: login azure-sql-database


【解决方案1】:

登录失败很可能是由错误的登录/密码组合引起的。 请确保您在尝试登录时使用的是现有的 LOGIN,而不是 USER!请注意,当您要使用 SQL Server 进行身份验证时,您必须使用创建的 LOGIN 而不是 USER。您必须找出与您的“mydbusername”关联的登录名。 拥有用户是很好的,并且该用户被添加到不同的角色,但是没有关联登录的 USER 什么都不是。

您可以参考this documentation

【讨论】:

    【解决方案2】:

    我知道这是旧线程,但我可能会帮助面临同样问题的其他人...我在 master 数据库中创建了用户而没有授予任何特殊权限 - 这解决了问题。貌似在 Azure 中,属于用户数据库的所有用户也应该出现在 master 数据库中??!!

    【讨论】:

      【解决方案3】:

      由于 Azure 为多个数据库使用数据库服务器,因此您不能只登录 Management Studio(连接到对象资源管理器)

      这将使您可以查看同一服务器上每个人的数据库。

      为避免这种情况,只需关闭启动时显示的初始登录提示对话框,并在关闭后单击“新查询”。

      系统会提示您进行连接 - 但如果您转到连接设置并选择您的数据库作为初始目录,您将能够从那里编写您(并且只有您的)数据库的脚本。

      没有对象浏览器 - 但至少您可以直接编写数据库脚本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-22
        • 1970-01-01
        • 1970-01-01
        • 2017-06-05
        • 1970-01-01
        • 1970-01-01
        • 2011-03-23
        相关资源
        最近更新 更多