Я пытаюсь создать надстройку SSMS. Одна из вещей, которые я хочу сделать, - создать новое окно запросов и программно подключить его к экземпляру сервера (в контексте входа в систему SQL). Я могу просто создать новое окно сценария запроса, но не могу найти, как его подключить, предварительно не подключившись вручную к чему-то другому (например, к Обозревателю объектов).
Другими словами, если я подключаю Obect Explorer к экземпляру SQL вручную, а затем выполняю метод моей надстройки, которая создает окно запроса, я могу подключить его с помощью этого кода:
ServiceCache.ScriptFactory.CreateNewBlankScript(
Editors.ScriptType.Sql,
ServiceCache.ScriptFactory.CurrentlyActiveWndConnectionInfo.UIConnectionInfo,
null);
Но я не хочу полагаться на CurrentActiveWndConnectionInfo.UIConnectionInfo для подключения. Я хочу программно установить имя пользователя и пароль для входа в SQL.
У кого-нибудь есть идеи?
EDIT:
Мне удалось подключить окно запроса, установив последний параметр для экземпляра System.Data.SqlClient.SqlConnection. Тем не менее, соединение использует контекст последнего входа в систему, который был подключен вместо того, что я пытаюсь установить программно. То есть пользователь, к которому он подключается, - это тот, который выбран в диалоге подключения, который вы получаете, когда нажимаете кнопку «Новый запрос» и не подключен проводник объектов.
EDIT2:
Я пишу (или надеюсь написать) надстройку для автоматической отправки оператора SQL и результатов выполнения в нашу систему отслеживания случаев при работе с нашими производственными серверами. Одна мысль, которая у меня была, заключалась в том, чтобы удалить разрешения на запись и назначить логины через эту надстройку, что также заставит пользователя вводить регистр # отменяя инструкцию, если ее там нет. Еще одна мысль, которую я только что имел, это проверить имя сервера в ServiceCache.ScriptFactory.CurrentlyActiveWndConnectionInfo.UIConnectionInfo и сравнить его с нашим списком рабочих серверов. Если он совпадает, а номер дела отсутствует, отмените запрос.