Skip to content

Что это за база данных model?

Пересказ статьи Garry Bargsley. What is a model database?


Вы заглядывали когда-нибудь в раздел системных баз данных SSMS? Те, кто только начинает работать с SQL Server, могут многого не знать о важных системных базах данных. Для функционирования каждого SQL Server требуются четыре системные базы данных.


Ниже я расскажу о базе данных model, которая имеет уникальное значение для SQL Server.

База данных model является пустой оболочкой для базы данных, единственной целью которой является предоставление шаблона для каждой новой пользовательской базы данных, создаваемой в SQL Server. Это подразумевает, что вы можете внести изменения в конфигурацию базы данных model, а затем ожидать, что эти базовые настройки будут применяться ко всем новым пользовательским базам данных.

Например, вы хотите, чтобы каждая новая база данных имела файл данных размером 4Гб, а журнала - 2Гб; вы можете это сделать. Что если вы захотите, чтобы все новые базы данных находились в режиме Bulk Recovery? Вы можете это сделать. Что мне больше всего нравится, это создать стандартные настройки безопасности для каждой новой базы данных. И да, вы можете это сделать.

Я сейчас настрою конфигурацию моей базы данных model в соответствии с четырьмя приведенными выше примерами, и покажу, как это повлияет на вновь создаваемые базы данных.

USE [master]
GO
ALTER DATABASE [model] SET RECOVERY BULK_LOGGED WITH NO_WAIT
GO
ALTER DATABASE [model] MODIFY FILE ( NAME = N'modeldev', SIZE = 4194304KB )
GO
ALTER DATABASE [model] MODIFY FILE ( NAME = N'modellog', SIZE = 2097152KB )
GO
USE [model]
GO
CREATE USER [ModelUser] FOR LOGIN [ModelUser]
GO
ALTER ROLE [db_datareader] ADD MEMBER [ModelUser]
GO

Как видите, в этом скрипте я устанавливаю режим восстановления, размер данных и журнала, а также добавляю пользователя SQL. Теперь всякий раз, когда создается новая база данных, она будет наследовать эти установки.

На скриншоте ниже показаны результаты эти настроек при использовании графического интерфейса SSMS для создания новой базы данных.



Я выполнил пару системных представлений, чтобы показать вам значения, назначенные базе данных ModelDeployment1, которую я создал. Первое, что вы видите, - это режим Bulk Recovery. Затем вы видите размер файла данных и файла журнала, соответствующий сделанным настройкам. Наконец, видно, что был создан новый пользователь SQL с именем ModelUser.

Теперь, если я выполню команду создания базы данных CREATE DATABASE, вы увидите те же самые результаты для созданной с помощью T-SQL базы данных.



Я отмечал, что SSMS GUI и T-SQL работали по-разному в прошлом, и воплощали разные установки model. Это было исправлено в современной версии SSMS и SQL Server.
Категории: T-SQL

Обратные ссылки

Нет обратных ссылок

Комментарии

Показывать комментарии Как список | Древовидной структурой

Нет комментариев.

Автор не разрешил комментировать эту запись

Добавить комментарий

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Form options

Добавленные комментарии должны будут пройти модерацию прежде, чем будут показаны.