4

标题:连接到服务器

无法连接到 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 用于“登录”字段。我已验证密码正确。我还验证了服务器名称是正确的。我究竟做错了什么?我真的需要这个,因为我从我的代码中得到了错误。谢谢!

4

3 回答 3

5

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

您可能需要参考此文档

于 2012-06-18T06:01:45.450 回答
3

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

于 2016-05-17T19:28:54.873 回答
1

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

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

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

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

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

于 2013-10-11T16:26:33.090 回答