无法使用新用户

时间:2017-12-07 13:38:17

标签: sql sql-server azure-sql-database

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

CREATE LOGIN myLogin
  WITH PASSWORD = 'myPw' 
GO

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

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)

我错过了一步吗?

1 个答案:

答案 0 :(得分:0)

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

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