Организационными инструментами для управления SQL Server являются экземпляры, базы данных и схемы:
Сервер может запускать несколько экземпляров. Экземпляр - это, по сути, совершенно отдельный экземпляр сервера на том же компьютере.
Экземпляр может управлять несколькими базами данных. База данных является стандартной границей целостности - вы (обычно) создаете резервную копию всей базы данных, ссылочная целостность ограничена тем, что она находится между объектами в одной базе данных и т. Д.
Каждая база данных может содержать несколько схем, позволяющих упорядочить код.
Все эти "контейнеры" так или иначе связаны с безопасностью.
Я рекомендую вам сначала взять данные организации и провести инвентаризацию, чтобы вы понимали, с какими данными вы работаете, кто их использует и как - с особым вниманием к данным, которые являются общедоступными или совместными (данные, используемые некоторыми людьми совместно ) и который должен иметь разделенный доступ (используется только определенной ролью). SQL Server на самом деле не является отличным местом для хранения неструктурированных данных - я бы не рассматривал его, например, как простую замену файлового сервера.
Оттуда перейдите к определению ролей для ваших пользователей. Наличие ролей - намного лучшая стратегия, чем назначение прав отдельным пользователям. Он документирует семантическое значение доступа (любой человек, выполняющий эту роль, нуждается в этом доступе, в отличие от личности пользователя - Джон и Кейт нуждаются в доступе - это ничего не говорит о том, зачем ему нужен доступ). Будьте уверены, что роли достаточно мелкозернистые. Роль отдела, такая как AccountsReceivable, не так полезна, как PaymentApprover, InvoiceProcessor или AccountsSupervisor. Пользователи могут действовать в разных ролях - это даст вам гораздо больше возможностей самодокументирования в вашей инфраструктуре и намного меньше дыр в безопасности и головной боли.
Это должно помочь определить, какие контейнеры вам понадобятся и какой доступ предоставить и направить вашу инфраструктуру данных оттуда.
Что касается предоставления пользователям прямого доступа, я с Рэнди Миндером, SQL Server в лучшем случае является только опытным инструментом пользователя. Если они знакомы с Access, хорошим вариантом будет позволить им использовать Access против тщательно разработанных и выбранных представлений в SQL Server, пока они не будут готовы к более систематическому подходу к проектированию данных.