Новый пользователь не может войти в 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.
Что я делаю неправильно или не хватает?
Ответы
Ответ 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]
Мы обновили пользователей базы данных, и теперь они были включены, а затем мы смогли успешно подключиться к базе данных.
Ответ 5
Как уже упоминалось выше, вы не можете переключать базы данных с помощью T-SQL (используйте инструкцию), поэтому вам нужно сделать это вручную. Просмотрите статью: Как создать пользовательский логин для базы данных Azure SQL
Ответ 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]