Подтвердить что ты не робот

Новый пользователь не может войти в SQL Azure

Я создаю нового пользователя для чтения/записи на 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.

Что я делаю неправильно или не хватает?

4b9b3361

Ответ 1

По умолчанию SSMS пытается подключиться к master, но ваша новая учетная запись не имеет доступа к master; я предполагаю только ту базу данных пользователя.

На экране входа в систему SSMS вам также нужно указать имя базы данных; просто нажмите значок Параметры → , который откроет вкладку Свойства подключения. В нем укажите имя базы данных, к которой вы пытаетесь подключиться.

Ответ 2

После создания пользователя базы данных в конкретной базе данных Database1, снова выберите "мастер" и создайте пользователя базы данных. Выполните нижеследующий оператор дважды: один для Database1 и другой для "master"

CREATE USER appuser1 FROM LOGIN appuser1;

К сожалению, это не описано в помощи Azure http://msdn.microsoft.com/en-us/library/windowsazure/ee336235.aspx

Ответ 3

- > Откройте новое окно запроса для основной базы данных и выполните следующие команды

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

Источник: Как создать пользовательский логин для базы данных Azure SQL

Ответ 4

Как заметил Кароль в ответе Эрве Роджеро, у меня была такая же проблема даже после выбора базы данных.

В нашем случае проблема заключалась в том, что пользователи, созданные нами в наших базах данных, были отключены. очерненные пользователи - пользователи, которых мы добавили... и были такими, как

После запуска следующего script в базе данных мы хотели бы подключиться для каждого пользователя:

  GRANT CONNECT TO [ourDbUser]

Мы обновили пользователей базы данных, и теперь они были включены, а затем мы смогли успешно подключиться к базе данных.

Ответ 6

Для меня проблема заключалась в том, что человек, создавший пользователя в базе данных, сделал это без указания FROM LOGIN, поэтому пользователь был доступен на вкладке Security-> Пользователи, но вход в систему по-прежнему был невозможен. Мне пришлось воссоздать пользователя и связать его с логином с тем же именем в базе данных:

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]