Azure sql database 新用户无法登录到SQL Azure

Azure sql database 新用户无法登录到SQL Azure,azure-sql-database,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';

我正在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登录时,我收到一个错误,说
无法打开登录请求的数据库“master”。登录失败。


我做错了什么或丢失了什么?

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


在SSMS的登录屏幕上,还需要指定数据库名称;只需单击选项>>图标,即可打开连接属性选项卡。在其中,指定您尝试连接的数据库名称。

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

CREATE USER appuser1 FROM LOGIN appuser1;
不幸的是,Azure帮助中没有记录这一点

-->打开主数据库的新查询窗口并执行以下命令

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

正如卡罗尔在Herve Roggero的回复中所评论的那样,即使在选择了数据库之后,我也遇到了同样的问题

在我们的例子中,问题是我们在数据库中创建的用户被禁用。

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

  GRANT CONNECT TO [ourDbUser]

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

对我来说,问题是在数据库上创建用户的人没有在登录时指定
,因此用户可以在安全->用户选项卡中使用,但仍然无法登录。我必须重新创建用户,并将其链接到数据库上同名的登录名:

删除用户[myuser]
去
从登录名[myuser]创建用户[myuser],默认模式为[dbo]
去
然后授予对数据库的正确权限,在我的情况下:

ALTER ROLE db_datareader添加成员[myuser]
ALTER ROLE db_datawriter添加成员[myuser]

还有两个可能让你绊倒的原因:

  • 服务器登录名和数据库用户必须相同。你不能有指向APIUser的APILogin链接,Azure只是不喜欢它
  • Azure上的用户名中不允许使用连字符,因此您不能使用API User

  • 我试过这样做,但仍然得到同样的错误。我还必须从master上的登录创建用户。就像下面雷迪的回答一样,谢谢你!!解决了我的问题:)输入的数据库名称中的一个输入错误也会导致相同的错误消息,比如说,但是这个“
    默认情况下,SSMS尝试连接到master
    ”是完全错误的!SSMS不选择数据库的默认值。如果连接字符串未配置要连接的数据库,则服务器会将您连接到默认数据库。如果未为用户配置默认数据库,则默认情况下,master是默认数据库。简而言之:选择默认数据库与SSM无关,而是与SQL Server中用户的配置有关谢谢,兄弟。这节省了我搜索其他解决方案的时间。这违反了将用户隔离到他们所需的数据库的规则