新用户无法登录SQL Azure

时间:2011-06-25 08:53:51

标签: azure-sql-database

我正在SQL Azure上创建一个新的读/写用户,如下所示:

-- Connected to master
create login [fred] with password = 'xxx';

-- Connected to my DB
create user [fred] from login fred;
EXEC sp_addrolemember 'db_datareader', 'fred';
EXEC sp_addrolemember 'db_datawriter', 'fred';

当我使用SSMS登录时,出现错误Cannot open database "master" requested by the login. The login failed.

我做错了什么或错过了什么?

6 个答案:

答案 0 :(得分:78)

默认情况下,SSMS会尝试连接到master,但您的新帐户无权访问master;只有我认为的用户数据库。

在SSMS的登录界面,您还需要指定数据库名称;只需点击选项>> 图标,即可打开“连接属性”标签。在那里,指定您尝试连接的数据库名称。

答案 1 :(得分:30)

在特定数据库Database1中创建数据库用户后, 再次选择'master'并创建数据库用户。 执行以下语句两次 - 一个用于Database1,另一个用于'master'

CREATE USER appuser1 FROM LOGIN appuser1;

不幸的是,Azure帮助中没有记录这一点 http://msdn.microsoft.com/en-us/library/windowsazure/ee336235.aspx

答案 2 :(得分:10)

- >打开master数据库的新查询窗口并执行此命令

CREATE LOGIN AppLogin WITH password='XXXXXX'
GO

CREATE USER [AppUser] FOR LOGIN [AppLogin] WITH DEFAULT_SCHEMA=[dbo]
GO

- >打开您的数据库的新查询窗口

CREATE USER [AppUser] FOR LOGIN [AppLogin] WITH DEFAULT_SCHEMA=[dbo]
GO

EXEC sp_addrolemember 'db_owner', 'AppUser';
GO

Source: How to create custom user login for Azure SQL Database

答案 3 :(得分:2)

正如Karol在Herve Roggero的回复中评论的那样,即使选择了数据库,我也遇到了同样的问题。

在我们的案例中,问题是我们在数据库中创建的用户被禁用了。 the blackened users are the users we added... and were like that

在数据库中运行以下脚本后,我们想为每个用户连接:

  GRANT CONNECT TO [ourDbUser]

我们刷新了数据库的用户,现在他们已经启用了,然后我们就能够成功连接到数据库。

答案 4 :(得分:1)

对我来说,问题在于在数据库上创建用户的人员没有指定FROM LOGIN,因此该用户在“安全性”->“用户”选项卡中可用,但仍然无法登录。我必须重新创建用户,并将其链接到数据库上具有相同名称的登录名:

DROP USER [myuser]
GO

CREATE USER [myuser] FROM LOGIN [myuser] WITH DEFAULT_SCHEMA=[dbo]
GO

,然后以我为例,授予对数据库的正确权限:

ALTER ROLE db_datareader ADD MEMBER [myuser]
ALTER ROLE db_datawriter ADD MEMBER [myuser]

答案 5 :(得分:0)

其他可能导致您绊倒的原因:

  1. 服务器登录名和数据库用户必须相同。您无法将APILogin链接链接到APIUser,Azure只是不喜欢
  2. 在Azure的用户名中不允许使用连字符,因此您不能具有API用户
相关问题