Всем привет!
Я уже совсем не надеялся получить какой-либо ответ на свой "теоритический" вопрос, в одночасье ставший для меня практическим. Большое всем спасибо. Заканчивая, с лирикой, и отмечая присутствие модератора, хочу поблагодарить за классно оформленный сайт. Я вышел на него случайно...
Раз такое дело, попробую объяснить ситуацию поподробнее (если жена не выгонит из-за компа

.
Скажу сразу: систему доступа проектировал не я, но я тоже не подозревал, что может возникнуть такая проблема. Представим, что есть некий условный центр, в нем все расписано по ролям. Все пользователи входят в одну из ролей. Дольше все построено на ХП, которые выполняются в зависимости от роли. Как обычно, объемы всего этого проекта были неизвестны и мы посчитали логичным идентификацию пользователей возложить на сервак. Пользователь по определенным правилам регестрируется и попадает в таблицу sysusers и в нашу таблицу пользователей, которая хранит специфические данные о нем и определяет дальнейшие связи с другими таблицами. Сразу скажу, что на критическом трафике, когда все юзеры ломятся в базу я клиетта не тестировал (первоночальное кол-во юзеров было около 5 тысяч). На больших объемах табличных данных система работала устойчиво. Я кое-что оптимизировал в ХП, но до теста когда идет одновременный коннект не дошел...
потом заказчик присылает нам Excel — файл со всеми юзерами своих филиалов и говорит, что их надо закачать в систему. Мы пишем скрипт и закачиваем... но как только smalint исчерпал себя, все, естественно, остановилось. Я конечно понимаю вопросы о том, что, а если все они (эти 16000) начнут ломиться на сервер... Честно скажу — не знаю что будет, хотя исходя из логики работы системы, думаю, что это маловероятно. Вот в силу всех этих обстоятельст у меня и возник вопрос про юзеров...
То, что систему доступа придется переделывать, это ясно и так, но в силу обстоятельств хотелось бы обойтись малой кровью. Кстати, использую я MS SQL Server 2000. Работаю на этой платформе довольно давно (лет 5, начинал с версии 6.5). Знаю, что у многих СУБД таких ограничений нет, но и сам не могу поверить, что это может быть такой проблемой. Понятно, что организованно что-то не так, но вопрос сейчас не в этом, а в том как это обойти.
Вариант с разделом баз напрошивается сам собой, но выглядит довольно проблематично для конкретной реализации. Может такой вариант приемлим: в каждой роли один юзер (доступ к ХП, следовательно менять не надо). Все юзеры конкретной роли (Role1) коннектятся под юзером (User1). Дальше, вместо проверки идентификации пользователя серваком я доступ беру на себя (в своей таблице где лежит инфа о юзерах). То, что все они идут под User1, не страшно, я их потом разведу, кто есть кто. Это как раз о теме последнего сабж о логических и физических пользователях. По крайней мере, для меня это переработка нескольких ХП и немного изобретательномти...
Ну, вот, написал все это и подумал: "А кому все это нужно?". Сам не знаю, может кому-то потом станет легче... Заранее спасибо, хотя бы за прочтение...
Про Титаник это не плохо...