Проверка подлинности Active Directory(AD) в Azure Sql не работает
Я пытаюсь заставить аутентификацию Azure AD работать с моей базой данных SQL Azure.
- Я создал базу данных PaaS и связанный с ней сервер PaaS Sql.
- Я назначил свою учетную запись Azure AD в качестве "администратора Active Directory" "PaaS Sql Server".
Затем я вошел в систему SSMS, используя учетную запись МОЕГО домена, чтобы создать пользователя:
CREATE USER [xxx@yyy.com] FROM EXTERNAL PROVIDER;
GO
sp_addrolemember db_datareader, [xxx@yyy.com];
GO
sp_addrolemember
db_datawriter, [xxx@yyy.com];
GO
Когда я пытаюсь войти в систему с учетной записью xxxxx@yyy.com, я получаю обратно:
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. (.Net SqlClient Data Provider)
Server Name: zzzzz.database.windows.net
Error Number: 18456
Severity: 14
State: 1
Line Number: 65536
Что мне не хватает?
Странное наблюдение, если я намеренно использую неправильный пароль, я получаю эту ошибку: AADSTS70002: Ошибка при проверке учетных данных. AADSTS50126: Неверное имя пользователя или пароль, которые говорят о том, что AD как-то работает, но что-то не работает в общем процессе.
Еще одно странное наблюдение: если я добавлю действительную учетную запись AD, она будет успешной
CREATE USER [xxx@yyy.com] FROM EXTERNAL PROVIDER;
Если я создаю плохую учетную запись AD
CREATE USER [xxxABC@yyy.com] FROM EXTERNAL PROVIDER;
Я вернусь:
Principal 'xxxABC@yyy.com' could not be found or this principal type is not supported.
1 ответ
Из "simialr post"
Ошибка анонимного входа возникает, когда вы не указали базу данных, к которой хотите подключиться. Просто выберите "параметры" на экране входа в систему SSMS и введите имя базы данных, к которой вы хотите подключиться. Это потому, что ваш пользователь является отдельным пользователем в базе данных, в которой он был создан. Он не существует в Master. - Грег Тертер 7 марта 17:23
Это исправило мою проблему - часы потрачены впустую!!!
Примечание: для соединений ODBC пользователь также должен быть создан в master