Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка: Could not find a login matching the name provided. / 16 сообщений из 16, страница 1 из 1
20.01.2022, 14:23
    #40128085
Белов Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка: Could not find a login matching the name provided.
Добрый день всем.
Преамбула
Было два сервера SQL 2016, данные с одного сервера передавались с помощью Linked Server, используя sql login
Все прекрасно работало.

Решено было обновить до 2019, "обновление" прошло путем инсталяции новых серверов и затем переименованием.
Также был настроены линкед сервера, данные с одного сервера получаются и отправляются.

НО!
При попытке вызвать удаленную хранимую процедуру вот с таким параметром

Код: sql
1.
2.
exec [Server2].[Database1].dbo.MyProc
 @server = @@servername



На вызывающем сервере Server1 получаю ошибку

Код: sql
1.
2.
3.
4.
Сообщение 596, уровень 21, состояние 1, строка 0
Cannot continue the execution because the session is in the kill state.
Сообщение 0, уровень 20, состояние 0, строка 0
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.



В журнале ошибок на Server2 следующее
Код: sql
1.
2.
3.
4.
5.
6.
7.
Дата		20.01.2022 14:09:58
Журнал		SQL Server (Текущий - 20.01.2022 13:17:00)

Источник		Logon

Сообщение
Login failed for user 'DomainName\Server2$'. Reason: Could not find a login matching the name provided. [CLIENT: <local machine>]



Меняешь на
Код: sql
1.
2.
3.
4.
5.
6.
Declare
@server  varchar(128)
set @server = @@servername

exec [Server2].[Database1].dbo.MyProc
 @server = @server



Все работает прекрасно.
Кто-нибудь сталкивался с такой проблемой, может подскажите, как ее решить, помимо изменения кода?
...
Рейтинг: 0 / 0
20.01.2022, 14:27
    #40128087
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка: Could not find a login matching the name provided.
Так, собственно
авторLogin failed for user 'DomainName\Server2$'. Reason: Could not find a login matching the name provided. [CLIENT: <local machine>]
...
Рейтинг: 0 / 0
20.01.2022, 14:34
    #40128089
Белов Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка: Could not find a login matching the name provided.
Ролг Хупин,

Да, да.
Так и есть.
Попытка добавить этот "логин" к успеху не приводит.
...
Рейтинг: 0 / 0
20.01.2022, 14:36
    #40128092
Белов Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка: Could not find a login matching the name provided.
Ролг Хупин,

И кстати, не смущает, что соединение пытается установится из под локальной ВИНДОУЗ учетки, когда я соединяюсь с сервером под sql логином
...
Рейтинг: 0 / 0
20.01.2022, 14:44
    #40128096
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка: Could not find a login matching the name provided.
Белов Владимир
Ролг Хупин,

И кстати, не смущает, что соединение пытается установится из под локальной ВИНДОУЗ учетки , когда я соединяюсь с сервером под sql логином


Где это видно? Подробностей нет
...
Рейтинг: 0 / 0
20.01.2022, 15:07
    #40128115
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка: Could not find a login matching the name provided.
Белов Владимир
Ролг Хупин,

И кстати, не смущает, что соединение пытается установится из под локальной ВИНДОУЗ учетки, когда я соединяюсь с сервером под sql логином


покажите результат скрипта

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
SELECT 
	ORIGINAL_LOGIN() [current login]
	,CAST(s.server_id AS INT) AS [ID]
	,s.is_linked
	,s.name AS [Linked Server]
	,s.data_source
	,s.modify_date AS [Server Modified]
	,CASE 
		WHEN ll.uses_self_credential = 1
			THEN '[Current security context]'
		ELSE ll.remote_name
		END AS [Login Used]
	,ll.modify_date AS [Login Modified]
	,ISNULL(s.CATALOG, N'') AS [Catalog]
	,ISNULL(s.location, N'') AS [Location]
	,s.product AS [ProductName]
	,s.provider AS [ProviderName]
	,CAST(s.is_collation_compatible AS BIT) AS [CollationCompatible]
	,CAST(s.is_data_access_enabled AS BIT) AS [DataAccess]
	,CAST(s.is_remote_login_enabled AS BIT) AS [Rpc]
	,CAST(s.is_rpc_out_enabled AS BIT) AS [RpcOut]
	,ISNULL(s.collation_name, N'') AS [CollationName]
	,s.connect_timeout AS [ConnectTimeout]
	,s.lazy_schema_validation AS [LazySchemaValidation]
	,s.query_timeout AS [QueryTimeout]
	,s.uses_remote_collation AS [UseRemoteCollation]
FROM sys.servers s
LEFT JOIN sys.linked_logins ll ON ll.server_id = s.server_id

...
Рейтинг: 0 / 0
20.01.2022, 17:04
    #40128162
Белов Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка: Could not find a login matching the name provided.
komrad,

Это я выполнил на Server2
Server2 = VIR-SQL-MONITOR
...
Рейтинг: 0 / 0
20.01.2022, 17:34
    #40128172
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка: Could not find a login matching the name provided.
Белов Владимир,

это надо выполнить на сервере 1
...
Рейтинг: 0 / 0
20.01.2022, 18:54
    #40128191
Белов Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка: Could not find a login matching the name provided.
komrad,
...
Рейтинг: 0 / 0
20.01.2022, 19:22
    #40128198
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка: Could not find a login matching the name provided.
Белов Владимир,

а что выдаст эта команда, выполненная на server1 ?

Код: sql
1.
exec ('select @@servername [srv], original_login() [linked_account]') at [VIR-SQL-MONITOR]
...
Рейтинг: 0 / 0
20.01.2022, 19:32
    #40128204
Белов Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка: Could not find a login matching the name provided.
komrad,
...
Рейтинг: 0 / 0
20.01.2022, 20:54
    #40128223
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка: Could not find a login matching the name provided.
Белов Владимир,

ну если "sql linked login" с одной картинки идентичен "sql linked acc" с другой картинки, то попробуйте создать простую тестовую процедуру на сервере 2, которая будет возвращать переданное ей значение. И выполните её с сервера 1.
...
Рейтинг: 0 / 0
20.01.2022, 23:35
    #40128258
Белов Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка: Could not find a login matching the name provided.
komrad,

Да, именно так и сделал. Все параметры передает отлично, но стоит только указать, что
Код: sql
1.
@param = @@servername



все, валится с ошибкой.
...
Рейтинг: 0 / 0
21.01.2022, 12:05
    #40128352
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка: Could not find a login matching the name provided.
Белов Владимир
komrad,

Да, именно так и сделал. Все параметры передает отлично, но стоит только указать, что
Код: sql
1.
@param = @@servername



все, валится с ошибкой.


@@servername возвращает Nvarchar
входной параметр @param имеет такой же тип?
...
Рейтинг: 0 / 0
21.01.2022, 13:24
    #40128392
Белов Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка: Could not find a login matching the name provided.
komrad,
Да, nvarchar(128)
...
Рейтинг: 0 / 0
21.01.2022, 13:50
    #40128403
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка: Could not find a login matching the name provided.
Белов Владимир

Меняешь на
Код: sql
1.
2.
3.
4.
5.
6.
Declare
@server  varchar(128)
set @server = @@servername

exec [Server2].[Database1].dbo.MyProc
 @server = @server



Все работает прекрасно.


@server varchar(128)
здесь опечатка?

сработает ли процедура при вызове с явным значением (не переменная)?

Код: sql
1.
exec Server2.[Database1].dbo.MyProc  @server = N'value'



как отработает этот скрипт?

тестовая проца
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
/* выполнить на Server2 */
use tempdb 
go

create proc dbo.ret_val (@in nvarchar(128)) 
as 
  select @in [parameter]
go

grant exec on dbo.ret_val to public
go

/* выполнить на Server 1*/
exec Server2.tempdb.dbo.ret_val @@servername
exec Server2.tempdb.dbo.ret_val N'test value'

/* удаление процедуры */
/* выполнить на Server2 */
use tempdb 
go
drop proc dbo.ret_val
go

...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка: Could not find a login matching the name provided. / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]