Skip to content

AlexandrMov/SQLFuse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SQLFuse

Что это?

SQLFuse - это файловая система пользовательского режима, основанная на FUSE, которая отображает объекты сервера SQL на файловую систему: схемы, таблицы, представления, хранимые процедуры, функции, колонки, триггеры и др. Кроме отображения объектов SQLFuse частично поддерживает их создание, редактирование и удаление.

Лицензирование

О порядке распространения и лицензирования SQLFuse вы можете прочитать в файле LICENSE.

Сборка и установка

Сборка осуществляется путём вызова команд:

$ make clean
$ make

Вы также можете собрать SQLFuse с опцией DEBUG:

$ make clean
$ make debug

Это позволит увидеть исполняемые SQL-команды при сбросе кэша в БД.

Установка в систему выполняется командой:

# make install

Удаление выполняется командой:

# make uninstall

Установка и удаление SQLFuse происходит путём копирования в каталог /usr/bin/ или удаления из него исполняемого файла sqlfuse.

Запуск и настройка

SQLFuse основана на FUSE, поэтому про опции монтирования вы можете прочитать на FUSE. Параметры монтирования в опции -o относящиеся к SQLFuse представлены ниже:

  • profilename - наименование профиля, которое определено в конфигурационном файле sqlfuse.conf, путь до которого определяется переменной окружения XDG_CONFIG_HOME/sqlfuse/sqlfuse.conf. Более подробно описано в спецификации XDG Base Directory Specification.

Пример монтирования БД AdventureWorks2008R2:

$ ./sqlfuse -o profilename=AdventureWorks2008R2 ~/myserver/advworks

sqlfuse.conf

Конфигурационные файлы задают порядок работы и удобство настройки SQLFuse. Синтаксис имеет сходство с .ini-файлами, и позволяет описать группы, содержащие пары ключ-значение. Пример использования формата можно найти на сайте freedesktop.org, например:

Файл же sqlfuse.conf должен включать одну или более групп, имеющие пары ключ-значение. Наименование группы задаёт имя профиля, которое будет искать SQLFuse при монтировании в параметре profilename опции -o. Существует и зарезервированное наименование группы - [global]. Пары ключ-значение группы [global] заменяют пары ключ-значение других пользовательские групп. Таким образом, Вы можете задавать сквозные параметры, которые применимы ко всем профилям.

Далее представлен список возможных ключей:

  • appname - задаёт наименование приложения, которое будет передаваться в параметрах подключения к серверу, - по умолчанию SQLFuse;
  • maxconn - устанавливает количество подключений, которое будет использовать SQLFuse, при соединении с сервером SQL (рекомендуемое минимальное значение 2, так как это значительно ускоряет процесс работы), ожидает целочисленное значение;
  • to_codeset, from_codeset - конвертирует текст определений модулей сервера SQL заданную кодировку to_codeset из from_codeset (должен быть установлен iconv), ожидает текстовое значение;
  • ansi_npw - принудительное включение параметров QUOTED_IDENTIFIER, ANSI_NULLS, ANSI_WARNINGS, ANSI_PADDINGS, CONCAT_NULL_YIELDS_NULL в состояние ON, - необходимо на некоторых старых серверах, и при не верной/необходимой настройки БД сервера, ожидает значения true или false;
  • servername - имя и адрес экземпляра сервера, к которому необходимо подключиться;
  • dbname - наименование базы данных, которую следует примонтировать к файловой системе;
  • auth - наименование профиля авторизации, который задан в файле sqlconf.auth.conf (см. след. раздел);
  • username - логин пользователя БД;
  • password - пароль пользователя БД;
  • exclude_schemas - не отображать заданные схемы, разделённые ;;
  • deploy_time - задержка в секундах для сброса данных в БД, задержка считается от времени последней модификации объектов;
  • filter - фильтр для объектов - регулярное выражение, - при совпадении пути объект не будет найден, для фильтрации схем используйте exclude_schemas;
  • hot_start - горячий старт при монтировании, - выбираются все объекты БД и записываются в кэш SQLFuse. Пользователь, указанный в профиле авторизации, должен иметь права на создание временных таблиц.

При подключению к экземпляру сервера, например, test\test, экранировать символ \ не нужно, - это делает за Вас SQLFuse, при чтении конфигурационных файлов.

sqlfuse.auth.conf

Файл sqlfuse.auth.conf также располагается в директории из переменной XDG_CONFIG_HOME/sqlfuse/sqlfuse.conf и имеет формат определённый freedesktop.org. Конфигурационный файл определяет профиль авторизации, наименование которого определяет имя группы. Профиль авторизации может присвоен подключению через параметр auth в файле sqlfuse.conf.

Группа профиля авторизации имеет всего два параметра:

  • username - логин пользователя БД;
  • password - пароль пользователя БД.

Если Вам необходима авторизация в домене, то символ \ экранировать нет необходимости.

Контакты и обратная связь

  • если Вы хотите сообщить о конкретном баге, или оказать посильную помощь в разработке, то вам сюда;
  • можете отправлять предложения и замечания напрямую автору [email protected].

About

User-mode filesystem that maps SQL Server objects at files

Resources

License

Stars

Watchers

Forks

Packages

No packages published