Какова важность схемы в SQL-сервере?
Где эта схема помогает мне? Действительно ли это важно для соображений безопасности?
Да, основной целью схемы SQL было - является - облегчение управления безопасностью: определить, кто [какие принципалы] может получить доступ к чему [какие объекты базы данных]. Это стало особенно легко начиная с SQL 2005, когда схема перестала быть непосредственно связанной с владельцем.
Еще одно использование схемы - служить пространством имен, то есть предотвращать столкновения имен между объектами из разных схем.
Первоначально это использовалось для того, чтобы позволить многочисленным [интерактивным, т.е. ad-hoc типа] пользователям данной базы данных создавать свои собственные таблицы или хранимые процедуры (или другие объекты), не беспокоясь о существовании аналогично названных объектов, которые могут быть введены другими пользователями.
Namespace-like природа схемы также может быть использована в планируемом окружении базы данных, т.е. когда один архитектор проектирует структуру базы данных таким образом, чтобы обеспечить различные типы доступа, и действительно различные поведения, для различных групп пользователей.
Они разделяют вашу базу данных, чтобы упростить управление. Это из MSDN:
Схема теперь представляет собой отдельное пространство имен , которое существует независимо от пользователя базы данных , который создал это. Другими словами, схема - это просто контейнер объектов. Схема может принадлежать любому пользователю, и ее право собственности может передаваться.
Вот страница, взятая из: http://msdn.microsoft.com/en-us/library/ms190387.aspx
Что касается безопасности, это упрощает назначение разрешений, которые вы можете предоставить кто-то имеет доступ к схеме, не открывая им всю вашу базу данных.
Какая схема изменилась с выпуском SQL Server 2005 и более поздних версий - я считаю это дополнительным уровнем безопасности, а также контейнером объектов.
Это неплохой ресурс: http://msdn.microsoft.com/en-us/library/ms190387 (SQL.90) .aspx