Login “无法打开数据库”;大师;关于sqlazure
标题:连接到服务器 无法连接到tcp:ohimryXusa.database.windows.net,1433 其他信息: 你好, 我有一个SQLAzure数据库。这个数据库有一个用户名/登录名,我想用它来访问它。当我尝试通过SQL Server database Management Studio连接到数据库时,我收到一个错误,该错误表示:Login “无法打开数据库”;大师;关于sqlazure,login,azure-sql-database,Login,Azure Sql Database,标题:连接到服务器 无法连接到tcp:ohimryXusa.database.windows.net,1433 其他信息: 你好, 我有一个SQLAzure数据库。这个数据库有一个用户名/登录名,我想用它来访问它。当我尝试通过SQL Server database Management Studio连接到数据库时,我收到一个错误,该错误表示: Cannot open database "master" requested by the login. The login failed. Login
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)
Msg 15023, Level 16, State 1, Line 1
User, group, or role 'mydbusername' already exists in the current database
我有其他可以成功连接到数据库的登录名。我尝试在我的数据库上执行以下操作,以确保有用户:
CREATE USER mydbusername
我收到一个错误,上面写着:
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)
Msg 15023, Level 16, State 1, Line 1
User, group, or role 'mydbusername' already exists in the current database
我通过登录主数据库来验证用户是否存在。一到那里,我就跑:
从sys.sql\u登录中选择*
我想确保“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”权限
我尝试通过网络上的管理屏幕登录。我能够成功登录并执行查询。但是,当我尝试通过SQLServerManagementStudio登录时,我收到了上面的消息。我正在使用
mydbusername@ohimryXusa用于“登录”字段。我已经验证了密码是正确的。我还验证了服务器名称是否正确。我做错了什么?我真的需要这个,因为我从我的代码中得到了错误。谢谢大家! 登录失败很可能是由错误的登录密码组合造成的。 请确保您在尝试登录时使用的是现有的登录,而不是用户!请注意,当您想要使用SQL Server进行身份验证时,必须使用创建的登录名,而不是用户。您必须找出与您的“mydbusername”关联的登录名。 您拥有该用户是件好事,该用户被添加到不同的角色,但是没有关联登录名的用户算不了什么
您可能需要参考。因为Azure将数据库服务器用于多个数据库,您不能只登录到Management Studio(连接到对象资源管理器) 这将使您能够查看同一服务器上每个用户的数据库 为了避免这种情况,只需关闭启动时显示的初始登录提示对话框,并在关闭后单击“新建查询” 系统会提示您进行连接,但如果您转到“连接设置”并选择数据库作为初始目录,则您将能够从中编写(且仅限于)数据库脚本
没有对象资源管理器-但至少您可以直接编写数据库脚本。我知道这是一个旧线程,但我可能会帮助其他面临相同问题的人…我在主数据库中创建了用户,但没有授予任何特殊权限-这解决了问题。看起来在Azure中,属于用户数据库的所有用户也应该出现在主数据库中 很长一段时间-但我怀疑Azure是否允许您访问主数据库(在SQL实例上存储有关用户数据库的所有信息的数据库)。对话框中的数据库名称是否不正确?每个“Windows Azure SQL数据库服务器”始终有一个“主”数据库。这个数据库实际上被命名为“master”,它保存了当前服务器、防火墙规则、数据库使用统计信息的所有用户凭据。就SQL Server的常规本地安装而言,它不是主数据库,而是主数据库