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?
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ć.
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
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
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.
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.
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]
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ąć:
- 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]}
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