Большое спасибо за замечания, критика очень важна :)
1. При формировании ConntcntionString лучше использовать «Dialect=3». Диалект 1-й был давно для совместимости с InterBase 5.x. — можно ссылку на статью чтобы понять принципиальное отличие.
2. Лучше прямо указать место расположения базы «Database=c:\fb_base\base.gdb» — не соглашусь, лучше указывать сетевой путь, поскольку можно в последствии контролировать подключение на уровне сетевого подключения, удобно но linux серверах.
3. Чтобы не использовать стандартную GDS32.DLL достаточно в строке подключения указать нужную «ClientLibrary=c:\fbemb\fbclient.dll» — использование абсолютных путей в промышленных решениях не желательно, при необходимости развертывания на большом количестве серверов.
4. Если разговор идет о Powershell то вероятнее всего DataSet не нужен, достаточно однонаправленного FirebirdClient.FbDataReader, много быстрее и менее требователен к памяти (в памяти только текущая строка из БД), но есть свои минусы. — если реализация метода подключения вынесена в отдельную функцию, то результат лучше возвращать в DataSet, за идею спасибо, но пока не выполнял на столько тяжелых запросов, что бы прибегать к оптимизации потребления памяти.
5. При подключении в параметрах транзакции указать readonly.- это только при select, а если необходимо выполнять CRUD, придется делать коминт.
У вас не верная логика, насчет безопасности, есть серьезные промышленные решения identity manager, и у них у всех инициатором создания учетных записей является HR система, а AD выступает одной из многих систем где автоматически создается учетная запись, на основании ее появления в кадровой системе. И эту логику не я придумал, а производители систем безопасности бизнес класса.
1. При формировании ConntcntionString лучше использовать «Dialect=3». Диалект 1-й был давно для совместимости с InterBase 5.x. — можно ссылку на статью чтобы понять принципиальное отличие.
2. Лучше прямо указать место расположения базы «Database=c:\fb_base\base.gdb» — не соглашусь, лучше указывать сетевой путь, поскольку можно в последствии контролировать подключение на уровне сетевого подключения, удобно но linux серверах.
3. Чтобы не использовать стандартную GDS32.DLL достаточно в строке подключения указать нужную «ClientLibrary=c:\fbemb\fbclient.dll» — использование абсолютных путей в промышленных решениях не желательно, при необходимости развертывания на большом количестве серверов.
4. Если разговор идет о Powershell то вероятнее всего DataSet не нужен, достаточно однонаправленного FirebirdClient.FbDataReader, много быстрее и менее требователен к памяти (в памяти только текущая строка из БД), но есть свои минусы. — если реализация метода подключения вынесена в отдельную функцию, то результат лучше возвращать в DataSet, за идею спасибо, но пока не выполнял на столько тяжелых запросов, что бы прибегать к оптимизации потребления памяти.
5. При подключении в параметрах транзакции указать readonly.- это только при select, а если необходимо выполнять CRUD, придется делать коминт.