Nowy użytkownik nie może zalogować się do SQL Azure

Tworzymy nowego Użytkownika do odczytu/zapisu na SQL Azure w następujący sposób:

-- 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';

Podczas logowania przy użyciu SSMS pojawia się błąd mówiący Cannot open database "master" requested by the login. The login failed.

Co robię źle lub brakuje?

Author: Sean Kearon, 2011-06-25

6 answers

Domyślnie SSMS próbuje połączyć się z master, ale twoje nowe konto nie ma dostępu do master; zakładam, że tylko baza danych użytkowników.

Na ekranie logowania SSMS należy również podać Nazwę bazy danych; wystarczy kliknąć ikonę Options >>, która otworzy kartę Właściwości połączenia. Tam podaj nazwę bazy danych, z którą próbujesz się połączyć.

 113
Author: Herve Roggero,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-25 22:08:32

Po utworzeniu użytkownika bazy danych w konkretnej bazie danych Database1, ponownie wybierz 'master' i Utwórz użytkownika bazy danych. Wykonaj poniższe polecenie dwa razy-jeden dla Database1 i drugi dla 'master'

CREATE USER appuser1 FROM LOGIN appuser1;

Niestety nie jest to udokumentowane w pomocy platformy Azure https://docs.microsoft.com/en-gb/azure/azure-sql/database/logins-create-manage

 42
Author: Jyo Reddy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-10-06 13:41:58

-- > Otwórz nowe okno zapytań dla głównej bazy danych i wykonaj następujące polecenia

CREATE LOGIN AppLogin WITH password='XXXXXX'
GO

CREATE USER [AppUser] FOR LOGIN [AppLogin] WITH DEFAULT_SCHEMA=[dbo]
GO

-- > Otwórz nowe okno zapytań dla bazy danych

CREATE USER [AppUser] FOR LOGIN [AppLogin] WITH DEFAULT_SCHEMA=[dbo]
GO

EXEC sp_addrolemember 'db_owner', 'AppUser';
GO

Źródło: jak utworzyć niestandardowy login użytkownika dla Azure SQL Database

 15
Author: foluis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-11 02:56:08

Jak skomentował Karol w odpowiedzi Herve Roggero, miałem ten sam problem nawet po wybraniu bazy danych.

W naszym przypadku problem polegał na tym, że użytkownicy, których stworzyliśmy w naszych bazach danych, zostali wyłączeni. zaczernieni użytkownicy to użytkownicy, których dodaliśmy... i byli tacy

Po uruchomieniu następującego skryptu w bazie danych chcieliśmy połączyć dla każdego użytkownika:

  GRANT CONNECT TO [ourDbUser]

Odświeżyliśmy użytkowników bazy danych i teraz zostały one włączone, a następnie udało nam się połączyć z bazą danych pomyślnie.

 3
Author: D33,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-16 19:38:41

Dla mnie problem polegał na tym, że osoba, która utworzyła użytkownika w bazie danych, zrobiła to bez podania FROM LOGIN, dlatego użytkownik był dostępny w zakładce bezpieczeństwo- > użytkownicy, ale logowanie nadal nie było możliwe. Musiałem odtworzyć użytkownika i połączyć go z loginem o tej samej nazwie w bazie danych:

DROP USER [myuser]
GO

CREATE USER [myuser] FROM LOGIN [myuser] WITH DEFAULT_SCHEMA=[dbo]
GO

A następnie nadanie poprawnych uprawnień do bazy danych, w moim przypadku:

ALTER ROLE db_datareader ADD MEMBER [myuser]
ALTER ROLE db_datawriter ADD MEMBER [myuser]
 1
Author: CitrusO2,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-10-11 10:19:13

Dwa inne powody, które mogą Cię potknąć:

  1. Login serwera i użytkownik bazy danych muszą być takie same. Nie możesz mieć łącza APILogin do Apiusera, Azure po prostu tego nie lubi]} Nie można używać łączników w nazwach użytkowników na platformie Azure, więc nie można używać API-User]}
 0
Author: Red,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-01 13:06:45