powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Разрешения для линковки сервера
19 сообщений из 19, страница 1 из 1
Разрешения для линковки сервера
    #39991080
HornetBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, кто сталкивался.

На сервере смешанная авторизация (SQL+Win), есть группа пользователей Domain\Group, которой выданы разрешения на работу с базой и дополнительно дано разрешение на линковку:

USE master
GRANT ALTER ANY LINKED SERVER TO [Domain\Group]

Доменный пользователь, состоящий в этой группе, нормально работает с базой за исключением ХП, линкующей внешний сервер. Если ему сделать отдельный логин и дать тот же GRANT, при вызове ХП проблем нет. И попутный вопрос, можно ли как-нибудь увидеть разрешения этого пользователя или хотя бы переключить контекст выполнения на него, если у него нет отдельного логина?
...
Рейтинг: 0 / 0
Разрешения для линковки сервера
    #39991082
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HornetBlack,

что вы понимаете под "линковкой"?

у вас ХП которая не работает использует процедуры sp_*linkedserver* ?
...
Рейтинг: 0 / 0
Разрешения для линковки сервера
    #39991083
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HornetBlack,

GRANT ALTER означает разрешение на изменение настроек связанного сервера.
...
Рейтинг: 0 / 0
Разрешения для линковки сервера
    #39991095
HornetBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff,

Да, именно их:

EXEC sp_addlinkedserver @srvname,'Data',@provider,@file,NULL,'EXCEL 12.0'
EXEC sp_addlinkedsrvlogin @srvname, false
...
Рейтинг: 0 / 0
Разрешения для линковки сервера
    #39991097
HornetBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов,

Это разрешение требуется для присоединения сервера, читайте документацию.
...
Рейтинг: 0 / 0
Разрешения для линковки сервера
    #39991113
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HornetBlack,

вопрос не в этом, вопрос в том - зачем вообще динамически создаются такие подключения? Обычные практики не требуют операционного управления связанными серверами. Из создают один раз по известным маршрутам или вовсе использую другие ETL механизмы.
...
Рейтинг: 0 / 0
Разрешения для линковки сервера
    #39991137
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,

возможно у них файликов много нужно читать и имена файлов каждый раз разные. согласен что лучше использовать что нибудь типа ssis.

но вопрос автора в другом, вообще должно работать.

HornetBlack,
а какую ошибку выдает при запуске ХП?
...
Рейтинг: 0 / 0
Разрешения для линковки сервера
    #39991153
HornetBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов,
Внешние сервера бывают разными и не только SQL. В моем случае приходится работать с множеством эксельных файлов и для уменьшения нагрузки вместо динамического связывания OPENROWSET использую временную линковку.
...
Рейтинг: 0 / 0
Разрешения для линковки сервера
    #39991157
HornetBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff,

Да, файлов много, имена разные и иногда к файлам нужен не один, а несколько запросов, поэтому и линкую. SSIS не хочу использовать, потому что не очень люблю "непрозрачные" обработки.
Ошибку на уровне сервера в профилировщике (SQL-2012) не удалось поймать, но, как и писал выше, если выделить пользователю индивидуальный логин и дать то же разрешение, все работает.
Хотел посмотреть разрешения пользователя в группе, но сиквел такого не умеет, и в контекст этого пользователя перейти тоже не дает.
...
Рейтинг: 0 / 0
Разрешения для линковки сервера
    #39991159
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HornetBlack,

вы писали: "Доменный пользователь, состоящий в этой группе, нормально работает с базой за исключением ХП, линкующей внешний сервер"

но вы как то же поняли что без отдельной учетки ХП не работает. как это проявляется?
сервер же вам не пишет на выходе: "не работаю. заведи учетку отдельно"
...
Рейтинг: 0 / 0
Разрешения для линковки сервера
    #39991213
HornetBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff,

Несколько дней назад был подобный случай, когда пользователь, состоящий в группе и нормально с работающий с БД (выборка, обновление, добавление), также не смог выполнить вывод данных в эксельный файл, при этом в клиенте (акцесс) пишется ошибка 2473, т.е. "Объект или класс не поддерживает набор событий", которая очевидно является наведенной. В этой же группе состоят еще несколько десятков пользователей, у которых вообще нет никаких проблем с функционалом, но конкретный пользователь (его добавляли в группу недавно) смог выводить данные в эксельный файл только после заведения ему личного логина и выдачей гранта на линковку. Сегодня проблема повторилась у пользователя, который давно состоит в группе.
Все-таки, хотелось бы понять, есть ли возможность тестировать запросы в контексте пользователя, состоящего в доменной или виндовой группе, если индивидуального логина у него нет, а есть только групповой?
...
Рейтинг: 0 / 0
Разрешения для линковки сервера
    #39991218
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HornetBlack,

Вам нужно начать с локализации проблемы:
если вы считаете что у пользователя валится процедурка которая создает линкованный сервер на определенный excel файл, попробуйте съэмулировать ситуацию.

зайдите в ssms используя windows-аутентификацию данного пользователя. и попробуйте в явном виде запустить эту процедуру.
сервер если ему чего либо не хватает выдаст вам исключение и уже на основе этих данных можно говорить о том что что-то не работает.

ситуация когда у вас заведен логин для доменной группы, группе выдано разрешение на alter any linked server, есть право execute на ХП в которой используется sp_addlinkedserver для его создания и пользователи из этой доменной группы авторизуются на сервере вполне возможна, какой либо ошибки по сути быть не должно.
...
Рейтинг: 0 / 0
Разрешения для линковки сервера
    #39991223
HornetBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff,

К сожалению, чтобы зайти под другим доменным пользователем, мне придется нарушить политику инфобезопасности корпоративной сети, т.к. потребуется его пароль, а я админ SQL, но не домена )
Почему можно выполнить EXECUTE AS для любых логинов SQL, кроме групповых и пользователей группы? Недоработка...
...
Рейтинг: 0 / 0
Разрешения для линковки сервера
    #39991230
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HornetBlack,

это не "недоработка", это вы не совсем верно понимаете механизм аутентификации NTLM.
вам токен безопасности windows-логина святой дух чтоли должен нарисовать?

в сиквел аутентифицируется именно логин.
если вы сделаете execute as login = '<wingroup>' какой логин из этой группы он должен использовать что бы вас предоставлять? в группе же может быть много пользователей.

выполнять execute as login = '<windows_login>' вы в праве даже если виндовый пользователь не отмаплен как логин
...
Рейтинг: 0 / 0
Разрешения для линковки сервера
    #39991273
HornetBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff,

Спасибо, виндовый логин для смены контекста действительно работает. Выяснилась тонкость, которую раньше не понимал, но когда вы упомянули токен NTLM, все стало яснее. В SSMS пробовал менять контекст под виндового пользователя и движок упорно говорил, что олицетворение невозможно, потому что пользователя нет в логинах. Если же создать новое окно запроса и выполнить EXECUTE AS, то первая смена контекста выполняется, а вторая под другого пользователя фэйлится, даже если выполнить REVERT, т.е. токен не сбрасывается и нужно закрывать сессию.
Но возникла другая проблема:

EXECUTE AS login='group\user'
go
EXEC sp_addlinkedserver 'TEST','Data','Microsoft.ACE.OLEDB.12.0','c:\bc.xlsx',NULL,'EXCEL 12.0'
EXEC sp_addlinkedsrvlogin 'TEST', false
go
select * from TEST...barcodes

=====

сообщение: 15247, уровень: 16, состояние: 1, процедура: sp_addlinkedsrvlogin, строка: 25 [строка начала пакета: 0]
У пользователя нет разрешений на выполнение данного действия.
Сообщение 7437, уровень 16, состояние 1, строка 6
Использовать связанные серверы в режиме олицетворения без сопоставления с олицетворяемым именем входа нельзя.

GRANT ANY LINKED SERVER на всю группу выдан, из акцессного клиента линковка у этого пользователя и вывод в эксельный файл выполняются. GRANT в этом случае распространяется на участников группы?
...
Рейтинг: 0 / 0
Разрешения для линковки сервера
    #39991276
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HornetBlack,

sp_addlinkedsrvlogin вам ругается потому что для ее использования у логина под которым она запускается должно быть право ALTER ANY LOGIN это во первых.


во вторых вот видите что надо было и начинать с описания того что у вас в процедуре, я же первым делом спросил что вы понимаете под линковкой.
вы помимо создания линкованного сервера пытаетесь еще обратится к его данным в режиме олицетворения контекста.


такую штуку провернуть не просто, поскольку просто создать линкованный сервер и указать аутентификацию текущего контекста нельзя.
у вас обязательно должны быть заведенны логины для удаленного сервера. (точно на вскидку не помню есть вариант вроде аутентификации в режиме олицетворения текущего контекста, но там домен должен позволять делигирование kerberos, если домен правильно не сконфигурирован то как говорится - фигвам)
...
Рейтинг: 0 / 0
Разрешения для линковки сервера
    #39991280
HornetBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff,

Я думал, что и без пояснения понятно, что присоединенный сервер создается не для красоты, а для работы с его данными )
Во-первых, это же не реальный сервер, а виртуальный, через драйвер OLEDB, которому логины и аутентификация вообще не нужны. Они нужны механизму связывания SQL, но как указать этот маппинг непонятно. Похоже, через смену контекста протестировать создание и работу с подобным сервером невозможно. Самое смешное, что из акцесс-клиента все это выполняется без заморочек для десятков пользователей в группе, но вот для пары конкретных - не хочет. И гранты для этой пары я не могу выдать, если не завести их отдельно от группы.
...
Рейтинг: 0 / 0
Разрешения для линковки сервера
    #39991286
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HornetBlack,

Я думал, что и без пояснения понятно, что присоединенный сервер создается не для красоты, а для работы с его данными )


вы изначально свой первый пост прочтите, при этом абстрагировавшись от того что это вы его писали. исходя из вопроса изначально возникает ощущение что у вас проблема только с процедурой создания линк-сервера. поэтому то на форуме и есть faq где достаточно подробно изложен тезис - "чем четче сможешь сформулировать вопрос, тем быстрее получишь ответ".

конечно есть толика вероятности что хрустальные шары текущего контингента не подкачают, но я бы не стал давать повод догадывать за вас весь необходимый смысл вопроса



Во-первых, это же не реальный сервер, а виртуальный, через драйвер OLEDB, которому логины и аутентификация вообще не нужны. Они нужны механизму связывания SQL, но как указать этот маппинг непонятно. Похоже, через смену контекста протестировать создание и работу с подобным сервером невозможно. И гранты для этой пары я не могу выдать, если не завести их отдельно от группы


да по факту для excel файла никакой аутентификации не требуется, она анонимна. но это требование не самого провайдера данных, а механизма аутентификации sql server.
как я уже сказал, вы можете покопаться с настройками kerberos если не хотите в явном виде создавать логины для линк-сервера.
можете погуглить по поисковой фразе что то типа: "sql server kerberos authentication linked server" в первых 5 ссылках точно что-нибудь найдется по этой теме.


Самое смешное, что из акцесс-клиента все это выполняется без заморочек для десятков пользователей в группе, но вот для пары конкретных - не хочет

не претендую на истину первой инстанции, но вы уверены что пользователи которые могут осуществлять вызов вашей ХП не заведены как логины на сервере?
...
Рейтинг: 0 / 0
Разрешения для линковки сервера
    #39991288
HornetBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не претендую на истину первой инстанции, но вы уверены что пользователи которые могут осуществлять вызов вашей ХП не заведены как логины на сервере?
Конечно, я же сам их заводил ) Завтра попробую зайти на сиквел логинами разных пользователей и сравню отличия в вызовах.
Спасибо за помощь.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Разрешения для линковки сервера
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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