Поделиться через


Пользовательские экземпляры для тех, кто не обладает правами администратора

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

Важное примечаниеВажно!

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

Пользовательский экземпляр, известный также как дочерний или клиентский экземпляр, представляет собой экземпляр SQL Server, созданный родительским экземпляром (основным экземпляром, работающим как служба, например SQLExpress) от лица пользователя. Пользовательский экземпляр запускается как пользовательский процесс в контексте безопасности этого пользователя. Пользовательский экземпляр изолирован от родительского экземпляра и других пользовательских экземпляров, работающих на компьютере. О функции пользовательского экземпляра часто говорят также как о «запуске от лица обычного пользователя» (Run As Normal User, RANU).

ПримечаниеПримечание

Для сохранения согласованности в электронной документации SQL Server Express эту функцию называют пользовательским экземпляром. Эта функция была введена в выпуске SQL Server 2005 Express Edition.

Преимущества пользовательского экземпляра

Ниже приведены основные доводы, объясняющие преимущества использования модели пользовательского экземпляра.

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

  • Кроме обеспечения изоляции, целью SQL Server Express также является упрощение использования для тех, кто не обладает правами администратора. Многие пользователи Windows имеют учетные записи с правами администратора. К сожалению, выполнение сеанса в качестве администратора позволят вредоносному программному обеспечению завладеть компьютером пользователя. Однако вредоносное программное обеспечение, запускаемое пользователями, не обладающими правами администратора, не может внести изменения в масштабе всей системы и, следовательно, может вызвать лишь ограниченные повреждения.

Обзор пользовательского экземпляра

Обобщенный обзор модели пользовательского экземпляра.

  • Для создания пользовательских экземпляров требуется запуск родительского экземпляра SQL Server.

  • В процессе установки SQL Server Express обязательно создается папка Template Data, в которой хранятся пустые системные базы данных, предназначенные для использования процессом пользовательского экземпляра в случае его запуска.

  • Для запуска пользовательского экземпляра воспользуйтесь ключевым словом строки соединения user instance в SQLClient, которое может иметь значение true или false. По умолчанию установлено значение false. Если установлено значение false, пользовательские экземпляры не поддерживаются и сохраняется обычный режим работы. Если для слова user instance установлено значение true, модель пользовательского экземпляра будет активирована во время вызова ADO. NET connection.open.

    ПримечаниеПримечание

    Пространство имен System.Data.SqlClient определяет набор классов, которые открывают доступ к базе данных SQL Server и называются общим термином поставщик данных .NET для SQL Server или SqlClient. Управляемые приложения взаимодействуют с SqlClient посредством API-интерфейса в ADO .NET для запрашивания данных и сведений схем, хранимых в базах данных SQL Server, а также управления ими. Дополнительные сведения см. в документации по Visual Studio 2005.

  • При первом создании пользовательского экземпляра для любого пользователя системные базы данных копируются из папки Template Data в локальный пользовательский репозиторий каталог для монопольного использования пользовательским экземпляром. Обычно этот путь имеет следующий вид: диск:\Documents and Settings\Username\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS.

  • Пользователь подключается к этому новому пользовательскому экземпляру в качестве SysAdmin и использует базу данных, даже если он не является администратором родительского экземпляра.

    Примечание по безопасностиПримечание по безопасности

    Имена входа, провизионируемые как члены предопределенной роли сервера sysadmin во время установки, в шаблоне базы данных провизионируются как администраторы. Они являются членами предопределенной роли сервера sysadmin на пользовательском экземпляре, если не будут удалены.

  • При создании пользовательского экземпляра SQLClient переправляет на него все вызовы.

ПримечаниеПримечание

Пользовательские базы данных получают свойства READONLY на основании атрибутов и разрешений первичного файла для базы данных. Настройки ALTER DATABASE SET READ_ONLY/READ_WRITE неприменимы.

Строка подключения для использования пользовательского экземпляра

conn string =
"Data Source=.\\SQLExpress" +
"integrated security=true;" + 
"attachdbfilename=|DataDirectory|\mydb.mdf;" +
"user instance=true"
string connstr = GetConnectionString(); // get from config
using(SqlConnection conn = new SqlConnection(connstr)) {
  // this will connect to the user instance, not to the 
  // default SSE instance
  conn.Open();
  // use the connection to the user instance
}

Соединение с пользовательским экземпляром

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

Дополнительные сведения о соединении с пользовательским экземпляром с помощью среды Среда SQL Server Management Studio см. в разделе «Среда SQL Server Management Studio и SQL Server Express» электронной документации по SQL Server Express.

ПримечаниеПримечание

Дополнительные сведения об именованных каналах и сетевых протоколах см. в справке диспетчера конфигурации SQL Server. Для доступа к этой справке в меню Пуск выберите пункт Выполнить и введите команду SQLServerManager.msc. Откроется Диспетчер конфигурации SQL Server. Для доступа к справке выберите меню Справка. Чтобы просмотреть сетевые протоколы для SQL Server, щелкните область Сетевая конфигурация SQL Server.

Администрирование пользовательских экземпляров

Следующие сведения будут полезны администраторам, которым требуется управление пользовательскими экземплярами.

View/stored procedure/Transact-SQL

Описание

Select * from sys.dm_os_child_instances

Исполнение виртуального представления, где будут перечислены все пользовательские экземпляры, созданные на родительском экземпляре.

SHUTDOWN

Остановка SQL Server. Эта команда предназначена для остановки пользовательского экземпляра. Дополнительные сведения об использовании команды SHUTDOWN см. в разделе SHUTDOWN (Transact-SQL) электронной документации по SQL Server.

sp_configure 'user instances enabled'

Включение или отключение функции пользовательского экземпляра.

Для включения создания пользовательского экземпляра используйте:

sp_configure 'user instances enabled','1' 

RECONFIGURE;

GO

Для отключения создания пользовательского экземпляра используйте:

sp_configure 'user instances enabled','0'.

sp_configure 'user instance timeout'

Используйте:

sp_configure 'show advanced options', 1;

RECONFIGURE;

GO

sp_configure 'user instance timeout', 5;

GO

где 5 — это минимальное значение, а 65535 — максимальное.

sp_configure 'show advanced options' требуется для просмотра и установки тайм-аута. Дополнительные сведения о просмотре дополнительных параметров см. в разделе Настройка параметров сервера электронной документации по SQL Server.

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

При запуске пользовательский экземпляр всегда получает значение тайм-аута от родительского экземпляра. Однако при запуске пользовательский экземпляр может использовать значение тайм-аута sp_configure, которое является допустимым лишь для конкретного экземпляра.

Ограничения при использовании пользовательских экземпляров

При использовании пользовательских экземпляров некоторые функции SQL Server Express могут работать не так, как ожидается. В следующем списке перечислены возможные ограничения.

  • У одного пользователя может быть только один пользовательский экземпляр.

  • Репликация будет отключена.

  • Пользовательский экземпляр не поддерживает проверку подлинности SQL Server. Поддерживается только проверка подлинности Windows.

  • Для пользовательских экземпляров поддерживается только сетевой протокол локальных именованных каналов.

  • Пользовательский экземпляр совместно использует записи реестра родительского экземпляра.

  • Пользовательские экземпляры с собственным кодом не поддерживаются. Эта функция поддерживается только в ADO .NET.

  • Полнотекстовый поиск в пользовательском экземпляре SQL Server Express не поддерживается.

  • Поставщик WMI для событий сервера не поддерживается для динамически порожденных пользовательских экземпляров. Тем не менее, с родительским экземпляром SQL Server Express он должен работать. Дополнительные сведения о поставщике WMI см. в разделе Поставщик WMI для событий сервера электронной документации по SQL Server.