无法在SQL Azure上打开数据库“master”

时间:2012-06-17 13:36:21

标签: login azure-sql-database

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

我通过登录master数据库来验证用户是否存在。在那里,我跑了: 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的“登录”字段。我已经验证密码是否正确。我还验证了服务器名称是否正确。我究竟做错了什么?我真的需要这个,因为我从我的代码中得到了错误。谢谢!

3 个答案:

答案 0 :(得分:4)

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

您可以参考this documentation

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

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

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

没有对象资源管理器 - 但至少您可以直接编写数据库脚本。