Примеряю репортер на предмет внедрения в готовое winforms приложение и возник вопрос. База MSSQL 2008, специфика приложения такова, что после подсоединения к базе с помощью SqlConnection активируется роль приложения путем вызова
exec sp_setapprole 'FrontOfficeApp', 'verylongpassword' - иначе большинство объектов БД недоступно даже на чтение (разграничение прав доступа). Коррекцию connection string я уже понял как сделать (отчеты будут делаться на девелопмент сервере и копироваться на продакшн):
Код: Выделить всё
string applicationConnectionString = "Data Source=dbserver; Initial Catalog=mydb; Pooling=false; uid=foa; password=123; MultipleActiveResultSets=true; TrustServerCertificate=True");
rep1.Load("stiReport1.mrt");
foreach(StiDatabase db in rep1.Dictionary.Databases)
if(db is StiSqlDatabase) (db as StiSqlDatabase).ConnectionString = applicationConnectionString;
А вот как активировать application role после подсоединения - не знаю. Поискал события (на которые можно подписаться и выполнить нужную команду) в StiSqlDatabase типа AfterConnect или похожих - ничего не нашел. Как мне вызвать хранимую процедуру после соединения с БД?