无法使用新用户登录 Azure SQL

Posted

技术标签:

【中文标题】无法使用新用户登录 Azure SQL【英文标题】:Can not login to Azure SQL with new user 【发布时间】:2017-12-07 13:38:16 【问题描述】:

我想为 Azure Sql 数据库创建一个具有特定权限的新用户,但我无法使用它登录。据我了解,创建新用户和登录的必要步骤是首先创建登录:

CREATE LOGIN myLogin
  WITH PASSWORD = 'myPw' 
GO

之后我为非主数据库创建一个新用户并将他添加到角色中:

CREATE USER myUser
  FOR LOGIN myLogin
  WITH DEFAULT_SCHEMA = dbo
GO


EXEC sp_addrolemember N'db_datareader', N'myUser'
EXEC sp_addrolemember N'db_datawriter', N'myUser'
GO

当我现在尝试使用用户名 myUser 和密码 myPw 登录时,我收到错误消息

Login failed for user 'myUser'. (Microsoft SQL Server, Error: 18456)

我错过了一步吗?

【问题讨论】:

您是否在Master 数据库中创建了LOGIN? docs.microsoft.com/en-us/azure/sql-database/… 是的,登录在master数据库,用户在具体的非master数据库 您是否在 Azure SQL 数据库的防火墙上创建了条目?您如何尝试连接到数据库?你在使用 SSMS 机器的IP在防火墙里。我尝试使用 SSMS、OSQL 和 UDL 文件。使用 SSMS 登录与 DB-Admin 相同的机器。 当您使用 SSMS 连接时,请尝试单击“选项”按钮,并在“连接到数据库”字段中指定用户数据库。 【参考方案1】:

我也遇到了这个问题。你能解决它吗?我试图使用登录来保持数据库用户密码同步,但它根本不起作用,因此直接在非主数据库中创建具有密码的用户对我有用。

if not exists(select * from sys.database_principals where name = 'my_user')
begin
    exec('create user [my_user] with password = ''my_pwd'', default_schema = dbo')
end
go

-- Give specific roles to new database user
alter role db_ddladmin add member [my_user]
alter role db_datareader add member [my_user]
alter role db_datawriter add member [my_user]
go

-- Assure you give connect access to the user, otherwise may not be able to login
grant connect to [my_user]
go

【讨论】:

请以 cmets 而非回答者的身份提问

以上是关于无法使用新用户登录 Azure SQL的主要内容,如果未能解决你的问题,请参考以下文章

sql server2005新创建的登录名无法登陆

新用户无法登录(SQL Server)

具有托管标识(用户分配)的 Azure SQL 无法针对 AAD 使用

更改密码后无法使用Visual Studio 2013登录Windows azure帐户

Azure SQL - 如何将 AD 用户添加到 SQL 池数据库

无法连接到新的Azure SQL Server实例