Получение хранимой процедуры CLR, активированной посредником, для запуска в качестве владельца базы данных
Я пытаюсь настроить хранимую процедуру CLR для запуска из очереди сервис-брокера, чтобы хранимая процедура CLR выполнялась как владелец базы данных.
Я пробовал все виды комбинаций, но не могу заставить это работать без входа в систему как пользователь (с именем пользователя и паролем) в хранимой процедуре CLR.
Хранимая процедура CLR осуществляет доступ к файловой системе, и я только хочу, чтобы она имела доступ к папкам, разрешенным для пользователя Windows, который владеет базой данных.
1 ответ
Вы никогда не сможете получить доступ к ресурсам вне SQL Server без предоставления пароля для Windows. EXECUTE AS доверяют только внутри движка, у Windows (и, следовательно, файловой системы) нет абсолютно никаких причин доверять этому притворству.
В SQL есть одна специальная конструкция, облегчающая олицетворение на уровне операционной системы: CREATE CREDENTIAL
, но они работают только при сопоставлении имени входа SQL с именем входа Windows. Поскольку в вашем случае для начала не требуется вход в SQL, я не уверен, сможете ли вы заставить работать учетные данные SQL Server.