Вообще в идеале хотелось бы иметь возможность заводить в целом в MS SQL пользователей через AD, т.е. под разные сервисы, и там же указывать базы на которые доступ есть.
Но как понял сейчас это решается только на уровне скриптов, без какого-либо готового инструмента?
Для решения такой проблемы (разные свойства разных сущностей), в РСУБД, мне известно 3 шаблона проектирования (правда не помню как они называются корректно):
1. Все свойства в одной таблице, каждому свойству свой столбец. Если не применимо к данному продукту - NULL.
2. Продукты делятся на "категории с общими свойствами":
2.1 Для каждой категории вводится собственная таблица со всеми свойствами - каждому свойству свой столбец, NULL'ов нет
2.2 Выделяются общие свойства, которые есть у всех продуктов - они лежат в одной таблице, каждой категории заводится отдельная таблица, которая хранит свойства уникальные именно для этой категории.
Четвёртый вариант - это EAV. Пятый - хранить свойства в чём-то типа XML или JSON (этот вариант мне не нравится совершенно).
Я обычно использую 2.2, но у меня можно выделить конечное количество категорий (до 10, обычно).
Если у вас категорий очень много, то возможно EAV и выход, но проблемы с мусором и быстродействием на больших объёмах (когда всё перестанет влезать в память) практически гарантированы (если будет поиск по значениям свойств).
UPD. А, во, нашёл