Управление метаданными при предоставлении доступа к базе данных на другом сервереManage Metadata When Making a Database Available on Another Server

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server нетБаза данных SQL AzureнетХранилище данных SQL AzureнетParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Информация в этой статье применима в следующих ситуациях:This article is relevant in the following situations:

  • Настройка реплик доступности группы готовности Группы доступности AlwaysOnAlways On availability groups .Configuring the availability replicas of an Группы доступности AlwaysOnAlways On availability groups availability group.

  • Настройка зеркального отображения базы данных.Setting up database mirroring for a database.

  • Подготовка смены ролей между сервером-источником и сервером-получателем в конфигурации доставки журналов.When preparing to change roles between primary and secondary servers in a log shipping configuration.

  • Восстановление базы данных на другом экземпляре сервера.Restoring a database to another server instance.

  • Присоединение копии базы данных к другому экземпляру сервера.Attaching a copy of a database on another server instance.

Некоторые приложения зависят от информации, сущностей или объектов, которые находятся вне области однопользовательской базы данных.Some applications depend on information, entities, and/or objects that are outside of the scope of a single user database. Как правило, приложение зависит от баз данных master , msdb и пользовательской базы данных.Typically, an application has dependencies on the master and msdb databases, and also on the user database. Что-либо сохраненное вне пользовательской базы данных, которая требуется для правильного функционирования другой базы данных, должно быть доступно на экземпляре целевого сервера.Anything stored outside of a user database that is required for the correct functioning of that database must be made available on the destination server instance. Например, имена входа для приложений сохраняются как метаданные в базе данных master и должны быть созданы заново на целевом сервере.For example, the logins for an application are stored as metadata in the master database, and they must be re-created on the destination server. Если приложение или план обслуживания базы данных зависит от заданий агента SQL ServerSQL Server , метаданные которого сохранены в базе данных msdb , необходимо создать заново эти задания в экземпляре целевого сервера.If an application or database maintenance plan depends on SQL ServerSQL Server Agent jobs, whose metadata is stored in the msdb database, you must re-create those jobs on the destination server instance. Точно так же метаданные сохраняются в базе данных masterдля триггера уровня сервера.Similarly, the metadata for a server-level trigger is stored in master.

При перемещении базы данных для приложения в другой экземпляр сервера необходимо повторно создать все метаданные зависимых сущностей и объектов в базах данных master и msdb в экземпляре целевого сервера.When you move the database for an application to another server instance, you must re-create all the metadata of the dependant entities and objects in master and msdb on the destination server instance. Например, если в приложении базы данных используются триггеры уровня сервера, то простого присоединения или восстановления базы данных в новой системе будет недостаточно.For example, if a database application uses server-level triggers, just attaching or restoring the database on the new system is not enough. Функциональность базы данных не будет соответствовать ожидаемой, пока метаданные для этих триггеров в базе данных master не будут повторно созданы вручную.The database will not work as expected unless you manually re-create the metadata for those triggers in the master database.

Информация, сущности и объекты, сохраненные вне пользовательской базы данныхInformation, Entities, and Objects That Are Stored Outside of User Databases

В заключении этой статьи приводятся потенциальные проблемы, возникающие при работе с базой данных, которая доступна в другом экземпляре сервера.The remainder of this article summarizes the potential issues that might affect a database that is being made available on another server instance. Возможно, потребуется повторно создать один или несколько типов информации, сущностей или объектов, перечисленных в следующем списке.You might have to re-create one or more of the types of information, entities, or objects listed in the following list. Чтобы просмотреть итоговую информацию, щелкните ссылку элемента.To see a summary, click the link for the item.

Server Configuration SettingsServer Configuration Settings

SQL Server 2005 (9.x)SQL Server 2005 (9.x) и более поздние версии позволяют выборочно устанавливать и запускать ключевые службы и компоненты.and later versions selectively install and starts key services and features. Это помогает сократить уязвимую контактную зону системы.This helps reduce the attackable surface area of a system. В конфигурации по умолчанию для новых экземпляров многие из функций отключены.In the default configuration of new installations, many features are not enabled. Если в базе данных имеется зависимость от какой-либо отключенной по умолчанию службы или свойства, то их необходимо включить на целевом экземпляре сервера.If the database relies on any service or feature that is off by default, this service or feature must be enabled on the destination server instance.

Дополнительные сведения об этих параметрах и их включении и отключении см. в разделе Параметры конфигурации сервера (SQL Server).For more information about these settings and enabling or disabling them, see Server Configuration Options (SQL Server).

Учетные данныеCredentials

Учетные данные являются записью, которая содержит сведения для проверки подлинности, необходимые для подключения к ресурсу извне SQL ServerSQL Server.A credential is a record that contains the authentication information that is required to connect to a resource outside SQL ServerSQL Server. Как правило, учетные данные представляют собой имя входа и пароль Windows.Most credentials consist of a Windows login and password.

Дополнительные сведения об этой функции см. в разделе Учетные данные (компонент Database Engine).For more information about this feature, see Credentials (Database Engine).

ПРИМЕЧАНИЕ. Учетные данные используются учетными записями-посредниками агента SQL ServerSQL Server.NOTE: SQL ServerSQL Server Agent Proxy accounts use credentials. Получить идентификационный номер участника-посредника можно в системной таблице sysproxies .To learn the credential ID of a proxy account, use the sysproxies system table.

Cross-Database QueriesCross-Database Queries

Параметры базы данных DB_CHAINING и TRUSTWORTHY по умолчанию принимают значение OFF.The DB_CHAINING and TRUSTWORTHY database options are OFF by default. Если в исходной базе данных какой-либо из этих параметров имеет значение ON, то может потребоваться его включение в целевом экземпляре сервера.If either of these are set to ON for the original database, you may have to enable them on the database on the destination server instance. Дополнительные сведения см. в разделе ALTER DATABASE (Transact-SQL).For more information, see ALTER DATABASE (Transact-SQL).

Операции присоединения и отсоединения приводят к отмене межбазовых цепочек владения для базы данных.Attach-and-detach operations disable cross-database ownership chaining for the database. Сведения о том, как включить цепочки владения, см. в разделе Параметр конфигурации сервера "cross db ownership chaining".For information about how to enable chaining, see cross db ownership chaining Server Configuration Option.

Дополнительные сведения см. также в разделе Настройка зеркальной базы данных на использование свойства TRUSTWORTHY (Transact-SQL).For more information, see also Set Up a Mirror Database to Use the Trustworthy Property (Transact-SQL)

Владелец базы данныхDatabase Ownership

При восстановлении базы данных на другом компьютере имя входа пользователя SQL ServerSQL Server или пользователя Windows, начавшего процесс восстановления, автоматически становится владельцем базы данных.When a database is restored on another computer, the SQL ServerSQL Server login or Windows user who initiated the restore operation becomes the owner of the new database automatically. При восстановлении базы данных системный администратор или владелец новой базы данных могут сменить ее владельца.When the database is restored, the system administrator or the new database owner can change database ownership.

Распределенные запросы и связанные серверыDistributed Queries and Linked Servers

Распределенные запросы и связанные серверы поддерживаются приложениями OLE DB.Distributed queries and linked servers are supported for OLE DB applications. Распределенные запросы получают доступ к данным из нескольких разнородных источников, расположенных на одних и тех же или разных компьютерах.Distributed queries access data from multiple heterogeneous data sources on either the same or different computers. Конфигурация связанных серверов позволяет SQL ServerSQL Server выполнять команды в источниках данных OLE DB на удаленных серверах.A linked server configuration enables SQL ServerSQL Server to execute commands against OLE DB data sources on remote servers. Дополнительные сведения об этих функциях см. в разделе Связанные серверы (компонент Database Engine).For more information about these features, see Linked Servers (Database Engine).

Зашифрованные данныеEncrypted Data

Если в базе данных, к которой осуществляется доступ с другого экземпляра сервера, содержатся зашифрованные данные, а на исходном сервере главный ключ базы данных защищен главным ключом службы, может потребоваться повторное шифрование главного ключа службы.If the database you are making available on another server instance contains encrypted data and if the database master key is protected by the service master key on the original server, it might be necessary to re-create the service master key encryption. Главный ключ базы данных — это симметричный ключ, который применяется для защиты закрытых ключей сертификатов и асимметричных ключей, имеющихся в базе данных.The database master key is a symmetric key that is used to protect the private keys of certificates and asymmetric keys in an encrypted database. При создании этот ключ зашифровывается с помощью алгоритма Triple DES и пользовательского пароля.When created, the database master key is encrypted by using the Triple DES algorithm and a user-supplied password.

Чтобы разрешить автоматическое шифрование главного ключа базы данных на экземпляре сервера, копия этого ключа зашифровывается с использованием главного ключа службы.To enable the automatic decryption of the database master key on a server instance, a copy of this key is encrypted by using the service master key. Эта зашифрованная копия хранится как в рабочей базе данных, так и в базе данных master.This encrypted copy is stored in both the database and in master. Как правило, копия, которая хранится в базе данных master , обновляется без взаимодействия с пользователем при каждом изменении главного ключа.Typically, the copy stored in master is silently updated whenever the master key is changed. SQL ServerSQL Server сначала пытается расшифровать главный ключ базы данных с использованием главного ключа службы экземпляра.first tries to decrypt the database master key with the service master key of the instance. Если расшифровка заканчивается неудачей, SQL ServerSQL Server выполняет в хранилище учетных данных поиск учетных данных главного ключа, имеющих идентификатор GUID того же семейства, что и у базы данных, для которой нужен главный ключ.If that decryption fails, SQL ServerSQL Server searches the credential store for master key credentials that have the same family GUID as the database for which it requires the master key. SQL ServerSQL Server пытается расшифровать главный ключ базы данных с помощью всех подходящих учетных данных, пока не удастся расшифровать ключ или пока не кончатся учетные данные.then tries to decrypt the database master key with each matching credential until the decryption succeeds or there are no more credentials. Главный ключ, который не зашифрован с помощью главного ключа службы, следует открывать с помощью инструкции OPEN MASTER KEY и пароля.A master key that is not encrypted by the service master key must be opened by using the OPEN MASTER KEY statement and a password.

При копировании, восстановлении или присоединении зашифрованного ключа базы данных на новом экземпляре SQL ServerSQL Serverв базе данных master целевого сервера не содержится копия главного ключа базы данных, зашифрованного с использованием главного ключа службы.When an encrypted database is copied, restored, or attached to a new instance of SQL ServerSQL Server, a copy of the database master key encrypted by the service master key is not stored in master on the destination server instance. На целевом экземпляре сервера необходимо открыть главный ключ базы данных.On the destination server instance, you must open the master key of the database. Сделать это можно, выполнив следующую инструкцию: OPEN MASTER KEY DECRYPTION BY PASSWORD =' password ' .To open the master key, execute the following statement: OPEN MASTER KEY DECRYPTION BY PASSWORD ='password'. После этого рекомендуется выполнить следующую инструкцию, чтобы включить автоматическую расшифровку главного ключа: ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY.We recommend that you then enable automatic decryption of the database master key by executing the following statement: ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY. Эта инструкция передает экземпляру сервера копию главного ключа базы данных, зашифрованного с использованием главного ключа службы.This ALTER MASTER KEY statement provisions the server instance with a copy of the database master key that is encrypted with the service master key. Дополнительные сведения см. в разделах OPEN MASTER KEY (Transact-SQL) и ALTER MASTER KEY (Transact-SQL).For more information, see OPEN MASTER KEY (Transact-SQL) and ALTER MASTER KEY (Transact-SQL).

Сведения о включении автоматической расшифровки главного ключа базы данных в зеркальной базе данных см. в разделе Настройка зашифрованной зеркальной базы данных.For information about how to enable automatic decryption of the database master key of a mirror database, see Set Up an Encrypted Mirror Database.

Дополнительные сведения см. также в следующих разделах:For more information, see also:

User-defined Error MessagesUser-defined Error Messages

Определяемые пользователем сообщения об ошибках настраиваются в представлении каталога sys.messages ,User-defined error messages reside in the sys.messages catalog view. которое хранится в базе данных master.This catalog view is stored in master. Если приложение базы данных зависит от определяемых пользователем сообщений об ошибках и если эта база данных доступна на другом экземпляре сервера, то для добавления на целевой экземпляр сервера уже имеющихся определяемых пользователем сообщений об ошибках следует пользоваться хранимой процедурой sp_addmessage .If a database application depends on user-defined error messages and the database is made available on another server instance, use sp_addmessage to add those user-defined messages on the destination server instance.

Уведомления о событиях и события инструментария управления Windows (WMI) на уровне сервераEvent Notifications and Windows Management Instrumentation (WMI) Events (at Server Level)

Уведомления о событии на уровне сервераServer-Level Event Notifications

Уведомления о событиях уровня сервера хранятся в базе данных msdb.Server-level event notifications are stored in msdb. Поэтому, если приложение базы данных находится в зависимости от уведомления о событии уровня сервера, это уведомление необходимо создать и в целевом экземпляре сервера.Therefore, if a database application relies on a server-level event notification, that event notification must be re-created on the destination server instance. Для просмотра уведомлений о событиях в экземпляре сервера используется представление каталога sys.server_event_notifications .To view the event notifications on a server instance, use the sys.server_event_notifications catalog view. Дополнительные сведения см. в разделе Event Notifications.For more information, see Event Notifications.

В дополнение уведомления о событиях доставляются с помощью компонента Компонент Service BrokerService Broker.Additionally, event notifications are delivered by using Компонент Service BrokerService Broker. Маршруты входящих сообщений не включаются в базу данных, содержащую службу.Routes for incoming messages are not included in the database that contains a service. Вместо этого явные маршруты хранятся в базе данных msdb.Instead, explicit routes are stored in msdb. Если служба использует явный маршрут в базе данных msdb для перенаправления входящих сообщений, при присоединении базы данных к другому экземпляру необходимо заново создать этот маршрут.If your service uses an explicit route in the msdb database to route incoming messages to the service, when you attach a database in a different instance, you must re-create this route.

События инструментария управления Windows (WMI)Windows Management Instrumentation (WMI) Events

Поставщик инструментария WMI для событий сервера позволяет использовать Инструментарий управления Windows (WMI) для контроля событий в SQL ServerSQL Server.The WMI Provider for Server Events lets you use the Windows Management Instrumentation (WMI) to monitor events in SQL ServerSQL Server. Все приложения, основанные на событиях уровня сервера, обработанных поставщиком инструментария WMI, который необходим базе данных, должны быть определены на компьютере экземпляра целевого сервера.Any application that relies on server-level events exposed through the WMI provider on which a database relies must be defined the computer of the destination server instance. Поставщик событий инструментария WMI создает уведомления о событиях с целевой службой, описанной в базе данных msdb.WMI Event provider creates event notifications with a target service that is defined in msdb.

ПРИМЕЧАНИЕ. Дополнительные сведения см. в разделе Основные понятия о поставщике WMI для событий сервера.NOTE: For more information, see WMI Provider for Server Events Concepts.

Создание оповещения WMI в среде SQL Server Management StudioTo create a WMI alert using SQL Server Management Studio

Принцип работы уведомлений о событиях зеркальной базы данныхHow Event Notifications Work for a Mirrored Database

Межбазовая доставка уведомлений о событиях, в которой участвует зеркально отображенная база данных, по определению является удаленной, потому что зеркально отображенная база данных может выполнить переход на другой ресурс.Cross-database delivery of event notifications that involves a mirrored database is remote, by definition, because the mirrored database can fail over. Компонент Service BrokerService Broker поддерживает зеркально отображенные базы данных в форме маршрутов зеркального отображения.provides special support for mirrored databases, in the form of mirrored routes. Маршрут зеркального отображения имеет два адреса: один для экземпляра основного сервера и другой — для экземпляра зеркального сервера.A mirrored route has two addresses: one for the principal server instance and one for the mirror server instance.

С помощью настройки маршрутов зеркального отображения создается маршрутизация компонента Компонент Service BrokerService Broker , учитывающая зеркальное отображение базы данных.By setting up mirrored routes, you make Компонент Service BrokerService Broker routing aware of database mirroring. Маршруты зеркального отображения позволяют компоненту Компонент Service BrokerService Broker явно переадресовывать сеансы связи на текущий экземпляр основного сервера.The mirrored routes enable Компонент Service BrokerService Broker to transparently redirect conversations to the current principal server instance. Например, рассмотрим службу Service_A, которая расположена на зеркальной базе данных Database_A.For example, consider a service, Service_A, which is hosted by a mirrored database, Database_A. Предположим, что необходима другая служба Service_B, расположенная в базе данных Database_B, чтобы вести диалог со службой Service_A.Assume that you need another service, Service_B, which is hosted by Database_B, to have a dialog with Service_A. Для этого диалога база данных Database_B должна содержать зеркально отображенный маршрут для службы Service_A.For this dialog to be possible, Database_B must contain a mirrored route for Service_A. Кроме того, база данных Database_A должна содержать незеркальный маршрут протокола TCP к службе Service_B, который в отличие от локального остается допустимым после отработки отказа.In addition, Database_A must contain a nonmirrored TCP transport route to Service_B, which, unlike a local route, remains valid after failover. Эти маршруты включают ACK для возврата после отработки отказа.These routes enable ACKs to come back after a failover. Поскольку службу отправителя всегда называют тем же способом, маршрут должен указывать экземпляр брокера.Because the service of the sender is always named in the same manner, the route must specify the broker instance.

Требования для зеркально отображенных маршрутов применяются независимо от того, является ли служба в зеркально отображенной базе данных вызывающей или целевой.The requirement for mirrored routes applies for regardless of whether the service in the mirrored database is the initiator service or the target service:

  • Если целевая служба находится в зеркально отображенной базе данных, вызывающая служба должна иметь обратный, зеркально отображенный маршрут к целевой службе.If target service is in the mirrored database, the initiator service must have a mirrored route back to the target. Однако целевая служба может иметь постоянный маршрут к вызывающей службе.However, the target can have a regular route back to initiator.

  • Если вызывающая служба находится в зеркально отображенной базе данных, целевая служба должна иметь обратный, зеркально отображенный маршрут к вызывающей службе для доставки подтверждений и ответов.If initiator service is in the mirrored database, the target service must have a mirrored route back to initiator to deliver acknowledgements and replies. Однако вызывающая служба может иметь постоянный обратный маршрут к целевой службе.However, the initiator can have a regular route to the target.

Extended Stored ProceduresExtended Stored Procedures

ВАЖНО!IMPORTANT! Этот компонент находится в режиме обслуживания и может быть удален в будущей версии Microsoft SQL Server.This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Используйте вместо этого интеграцию со средой CLR .Use CLR Integration instead.

Программирование расширенных хранимых процедур осуществляется с помощью API-интерфейса расширенных хранимых процедур SQL ServerSQL Server .Extended stored procedures are programmed by using the SQL ServerSQL Server Extended Stored Procedure API. Участник предопределенной роли сервера sysadmin может зарегистрировать расширенную хранимую процедуру на экземпляре SQL ServerSQL Server и выдать пользователям разрешение на ее выполнение.A member of the sysadmin fixed server role can register an extended stored procedure with an instance of SQL ServerSQL Server and grant permission to users to execute the procedure. Расширенные хранимые процедуры будут добавляться только в базу данных master .Extended stored procedures can be added only to the master database.

Расширенные хранимые процедуры запускаются непосредственно в адресном пространстве экземпляра SQL ServerSQL Serverи могут приводить к утечкам памяти или другим проблемам, снижающим производительность и надежность сервера.Extended stored procedures run directly in the address space of an instance of SQL ServerSQL Server, and they may produce memory leaks or other problems that reduce the performance and reliability of the server. Целесообразно хранить расширенные хранимые процедуры в экземпляре SQL ServerSQL Server , отдельном от экземпляра, содержащего данные, на которые они ссылаются.You should consider storing extended stored procedures in an instance of SQL ServerSQL Server that is separate from the instance that contains the referenced data. Следует также рассмотреть возможность использования распределенных запросов для получения доступа к базе данных.You should also consider using distributed queries to access the database.

Важно!

Прежде чем добавлять расширенные хранимые процедуры на сервер и предоставлять разрешение EXECUTE на них другим пользователям, системный администратор должен тщательно проверить каждую расширенную хранимую процедуру, чтобы убедиться, что она не содержит вредоносного или злонамеренного кода.Before adding extended stored procedures to the server and granting EXECUTE permissions to other users, the system administrator should thoroughly review each extended stored procedure to make sure that it does not contain harmful or malicious code.

Дополнительные сведения см. в разделах Предоставление разрешений для объекта (Transact-SQL), DENY, запрет разрешений на объект (Transact-SQL) и REVOKE, отмена разрешения (Transact-SQL).For more information, see GRANT Object Permissions (Transact-SQL), DENY Object Permissions (Transact-SQL), and REVOKE Object Permissions (Transact-SQL).

Свойства средства полнотекстового поиска для SQL ServerFull-Text Engine for SQL Server Properties

Свойства средства полнотекстового поиска устанавливаются процедурой sp_fulltext_service.Properties are set on the Full-Text Engine by sp_fulltext_service. Убедитесь, что на целевом экземпляре сервера настроены необходимые для этих свойств параметры.Make sure that the destination server instance has the required settings for these properties. Дополнительные сведения об этих свойствах см. в разделе FULLTEXTSERVICEPROPERTY (Transact-SQL).For more information about these properties, see FULLTEXTSERVICEPROPERTY (Transact-SQL).

Кроме того, если на исходном и целевом экземплярах сервера установлены разные версии средств разбиения по словам и парадигматических модулей или фильтров полнотекстового поиска, то функциональность полнотекстового индекса и запросов также может отличаться.Additionally, if the word breakers and stemmers component or full-text search filters component have different versions on the original and destination server instances, full-text index and queries may behave differently. Кроме того, тезаурус хранится в файлах конкретного экземпляра.Also, the thesaurus is stored in instance-specific files. Нужно либо переместить копию этих файлов в соответствующее место на целевом экземпляре сервера, либо повторно создать их.You must either transfer a copy of those files to an equivalent location on the destination server instance or re-create them on new instance.

ПРИМЕЧАНИЕ. Когда базу данных SQL Server 2005 (9.x)SQL Server 2005 (9.x) с файлами полнотекстовых каталогов присоединяют к экземпляру сервера SQL Server 2017SQL Server 2017 , то присоединение файлов каталогов выполняется из их предыдущего расположения вместе с другими файлами баз данных, как и в SQL Server 2005 (9.x)SQL Server 2005 (9.x).NOTE: When you attach a SQL Server 2005 (9.x)SQL Server 2005 (9.x) database that contains full-text catalog files onto a SQL Server 2017SQL Server 2017 server instance, the catalog files are attached from their previous location along with the other database files, the same as in SQL Server 2005 (9.x)SQL Server 2005 (9.x). Дополнительные сведения см. в разделе Обновление полнотекстового поиска.For more information, see Upgrade Full-Text Search.

Дополнительные сведения см. также в следующих разделах:For more information, see also:

ЗаданияJobs

Если база данных использует задания агента SQL ServerSQL Server , их необходимо создать повторно на целевом экземпляре сервера.If the database relies on SQL ServerSQL Server Agent jobs, you will have to re-create them on the destination server instance. Задания находятся в зависимости от своей среды.Jobs depend on their environments. Если планируется повторное создание существующего задания на целевом экземпляре сервера, последний должен быть изменен для обеспечения соответствия среде задания на исходном экземпляре сервера.If you plan to re-create an existing job on the destination server instance, the destination server instance might have to be modified to match the environment of that job on the original server instance. Важными являются следующие факторы среды.The following environmental factors are significant:

  • Имя входа, используемое заданиемThe login used by the job

    Для создания или выполнения заданий агента SQL ServerSQL Server на целевой экземпляр сервера сначала нужно добавить необходимые ему имена входа SQL ServerSQL Server .To create or execute SQL ServerSQL Server Agent jobs, you must first add any SQL ServerSQL Server logins required by the job to the destination server instance. Дополнительные сведения см. в разделе Настройка пользователя для создания заданий агента SQL Server и управления заданиями.For more information, see Configure a User to Create and Manage SQL Server Agent Jobs.

  • SQL ServerSQL Server Стартовая учетная запись службы агентаAgent service startup account

    Стартовая учетная запись службы определяет учетную запись MicrosoftMicrosoft Windows, с которой запускается агент SQL ServerSQL Server , а также его сетевые разрешения.The service startup account defines the MicrosoftMicrosoft Windows account in which SQL ServerSQL Server Agent runs and its network permissions. SQL ServerSQL Server выполняется как заданная учетная запись пользователя.Agent runs as a specified user account. Контекст службы агента влияет на настройки задания и его среды выполнения.The context of the Agent service affects the settings for the job and its run environment. Учетной записи должен быть предоставлен доступ к необходимым для задания сетевым и другим ресурсам.The account must have access to the resources, such as network shares, required by the job. Сведения о выборе и изменении стартовой учетной записи службы см. в разделе Выбор учетной записи для службы агента SQL Server.For information about how to select and modify the service startup account, see Select an Account for the SQL Server Agent Service.

    Для обеспечения правильности работы стартовые учетные записи служб должны быть настроены на верный домен, файловую систему и разрешения реестра.To operate correctly, the service startup account must be configured to have the correct domain, file system, and registry permissions. Кроме этого, заданию может потребоваться общий сетевой ресурс, который также необходимо настроить для учетной записи службы.Also, a job might require a shared network resource that must be configured for the service account. Сведения см. в разделе Настройка учетных записей службы Windows и разрешений.For information, see Configure Windows Service Accounts and Permissions.

  • SQL ServerSQL Server , связанной с определенным экземпляром SQL ServerSQL Server, имеется собственный раздел реестра, настройки которого могут быть зависимостями заданий этой службы.Agent service, which is associated with a specific instance of SQL ServerSQL Server, has its own registry hive, and its jobs typically have dependencies on one or more of the settings in this registry hive. Чтобы обеспечить требуемую функциональность, заданиям необходимы соответствующие параметры реестра.To behave as intended, a job requires those registry settings. Если с помощью скрипта задание создается повторно для другой службы агента SQL ServerSQL Server , у нее может не оказаться необходимых для этого задания параметров.If you use a script to re-create a job in another SQL ServerSQL Server Agent service, its registry might not have the correct settings for that job. Чтобы обеспечить требуемую функциональность заданий, повторно созданных на целевом экземпляре сервера, у исходной и целевой служб агента SQL ServerSQL Server должны быть одинаково настроены параметры реестра.For re-created jobs to behave correctly on a destination server instance, the original and destination SQL ServerSQL Server Agent services should have the same registry settings.

    Внимание!

    Изменение настроек реестра целевой службы агента SQL ServerSQL Server для обработки повторно созданного задания может вызвать проблемы, если текущие настройки используются другими заданиями.Changing registry settings on the destination SQL ServerSQL Server Agent service to handle a re-created job could be problematic if the current settings are required by other jobs. Кроме того, неправильное изменение реестра может серьезно повредить систему.Furthermore, incorrectly editing the registry can severely damage your system. Перед внесением изменений в реестр рекомендуется создать резервную копию всех важных данных.Before you make changes to the registry, we recommend that you back up any valued data on the computer.

  • SQL ServerSQL Server Учетные записи-посредники агентаAgent Proxies

    Учетная запись-посредник агента SQL ServerSQL Server определяет контекст безопасности для указанного шага задания.A SQL ServerSQL Server Agent proxy defines the security context for a specified job step. Для задания, выполняющегося на целевом экземпляре сервера, все необходимые заданию учетные записи-посредники должны быть повторно созданы на этом экземпляре вручную.For a job to run on the destination server instance, all the proxies it requires must be manually re-created on that instance. Дополнительные сведения см. в разделах Создание учетной записи-посредника агента SQL Server и Устранение неполадок, связанных с многосерверными заданиями, использующими учетные записи-посредники.For more information, see Create a SQL Server Agent Proxy and Troubleshoot Multiserver Jobs That Use Proxies.

Дополнительные сведения см. также в следующих разделах:For more information, see also:

Просмотр существующих заданий и их свойствTo view existing jobs and their properties

Создание заданияTo create a job

Рекомендуемые методы использования скриптов для повторного создания заданийBest Practices for Using a Script to Re-create a Job

Рекомендуется начать с написания скрипта для простого задания, затем попробовать создать задание повторно для другой службы агента SQL ServerSQL Server и запустить задание, чтобы убедиться в правильности его работы.We recommend that you start by scripting a simple job, re-creating the job on the other SQL ServerSQL Server Agent service, and running the job to see whether it works as intended. Это позволит обнаружить несовместимости и попробовать их исправить.This will let you identify incompatibilities and try to resolve them. Если созданное задание не работает в новой среде, как положено, рекомендуется создать подобное задание, которое будет правильно работать в этой среде.If a scripted job does not work as intended in its new environment, we recommend that you create an equivalent job that works correctly in that environment.

Имена входаLogins

Для подключения к экземпляру SQL ServerSQL Server необходимо верное имя входа SQL ServerSQL Server .Logging into an instance of SQL ServerSQL Server requires a valid SQL ServerSQL Server login. Оно используется при проверке подлинности для определения того, разрешено ли участнику подключаться к экземпляру SQL ServerSQL Server.This login is used in the authentication process that verifies whether the principal can connect to the instance of SQL ServerSQL Server. Пользователь базы данных, соответствующее имя входа SQL ServerSQL Server которого для экземпляра сервера не определено или задано неправильно, не сможет подключиться к этому экземпляру.A database user for which the corresponding SQL ServerSQL Server login is undefined or is incorrectly defined on a server instance cannot log in to the instance. Такой пользователь называется утратившим связь с учетной записью базы данных на этом экземпляре сервера.Such a user is said to be an orphaned user of the database on that server instance. Пользователь базы данных может утратить связь с учетной записью после восстановления, присоединения или копирования на другой экземпляр SQL ServerSQL Server.A database user can become orphaned if after a database is restored, attached, or copied to a different instance of SQL ServerSQL Server.

Для создания скрипта для нескольких или всех объектов исходной копии базы данных можно воспользоваться мастером создания скриптов и в диалоговом окне Выбор параметров скрипта установить значение TRUE для параметра Внести в скрипт имена входа.To generate a script for some or all the objects in the original copy of the database, you can use the Generate Scripts Wizard, and in the Choose Script Options dialog box, set the Script Logins option to True.

ПРИМЕЧАНИЕ. См. дополнительные сведения о настройке учетных записей входа для зеркального отображения баз данных или групп доступности AlwaysOn (SQL Server) и управлении именами входа и заданиями после переключения ролей (SQL Server).NOTE: For information about how to set up logins for a mirrored database, see Set Up Login Accounts for Database Mirroring or Always On Availability Groups (SQL Server) and Management of Logins and Jobs After Role Switching (SQL Server).

PermissionsPermissions

При открытии доступа к базе данных на другом экземпляре сервера могут быть применены следующие типы разрешений:The following types of permissions might be affected when a database is made available on another server instance.

  • Разрешения GRANT, REVOKE или DENY на системные объекты.GRANT, REVOKE, or DENY permissions on system objects

  • Разрешения GRANT, REVOKE или DENY на экземпляр сервера (разрешения уровня сервера).GRANT, REVOKE, or DENY permissions on server instance (server-level permissions)

Разрешения GRANT, REVOKE или DENY на системные объектыGRANT, REVOKE, and DENY Permissions on System Objects

Разрешения на такие системные объекты, как хранимые процедуры, расширенные хранимые процедуры, функции и представления, хранятся в базе данных master и должны быть сконфигурированы на целевом экземпляре сервера.Permissions on system objects such as stored procedures, extended stored procedures, functions, and views, are stored in the master database and must be configured on the destination server instance.

Для создания скрипта для нескольких или всех объектов исходной копии базы данных можно воспользоваться мастером создания скриптов и в диалоговом окне Выбор параметров скрипта установить значение TRUE для параметра Внести в скрипт разрешения уровня объектов.To generate a script for some or all the objects in the original copy of the database, you can use the Generate Scripts Wizard, and in the Choose Script Options dialog box, set the Script Object-Level Permissions option to True.

Важно!

При внесении в скрипт имен входа соответствующие им пароли в скрипт не заносятся.If you script logins, the passwords are not scripted. При наличии имен входа, использующих проверку подлинности SQL ServerSQL Server , необходимо изменить скрипт на целевом экземпляре сервера.If you have logins that use SQL ServerSQL Server Authentication, you have to modify the script on the destination.

Системные объекты отображаются в представлении каталога sys.system_objects .System objects are visible in the sys.system_objects catalog view. Разрешения на доступ к системным объектам отображаются в представлении каталога sys.database_permissions в базе данных master.The permissions on system objects are visible in the sys.database_permissions catalog view in the master database. Сведения о запросе этих представлений каталога и выдаче разрешений на уровне объектов см. в разделе GRANT, предоставление разрешения на системный объект (Transact-SQL).For information about querying these catalog views and granting system-object permissions, see GRANT System Object Permissions (Transact-SQL). Дополнительные сведения см. в разделах REVOKE, отмена разрешения на системные объекты (Transact-SQL) и DENY, запрет разрешений на системные объекты (Transact-SQL).For more information, see REVOKE System Object Permissions (Transact-SQL) and DENY System Object Permissions (Transact-SQL).

Разрешения GRANT, REVOKE или DENY на экземпляр сервераGRANT, REVOKE, and DENY Permissions on a Server Instance

Разрешения в области сервера хранятся в базе данных master и должны быть сконфигурированы на целевом экземпляре сервера.Permissions at the server scope are stored in the master database and must be configured on the destination server instance. Чтобы получить сведения о разрешениях сервера в экземпляре сервера, запросите представление каталога sys.server_permissions. Сведения об участниках сервера можно получить из представления каталога sys.server_principals, а сведения о членстве ролей сервера содержатся в представлении каталога sys.server_role_members.For information about the server permissions of a server instance, query the sys.server_permissions catalog view, for information about server principals query the sys.server_principalss catalog view, and for information about membership of server roles query the sys.server_role_members catalog view.

Дополнительные сведения см. в разделах GRANT, предоставление разрешений на сервер (Transact-SQL), REVOKE, отмена разрешений сервера (Transact-SQL) и DENY, запрет разрешений на сервере (Transact-SQL).For more information, see GRANT Server Permissions (Transact-SQL), REVOKE Server Permissions (Transact-SQL), and DENY Server Permissions (Transact-SQL).

Разрешения уровня сервера на сертификат или асимметричный ключServer-Level Permissions for a Certificate or Asymmetric Key

На сертификат или асимметричный ключ напрямую выдать разрешения на уровне сервера невозможно.Server-level permissions cannot be granted directly to a certificate or asymmetric key. Вместо этого разрешения на уровне сервера выдаются сопоставленному имени входа, созданному специально для указанного сертификата или асимметричного ключа.Instead, server-level permissions are granted to a mapped login that is created exclusively for a specific certificate or asymmetric key. Поэтому для каждого сертификата или асимметричного ключа, требующего разрешений на уровне сервера, необходимо наличие имени входа, сопоставленного с сертификатом , или имени входа, сопоставленного с асимметричным ключом.Therefore, each certificate or asymmetric key that requires server-level permissions, requires its own certificate-mapped login or asymmetric key-mapped login. Разрешение на сертификат или асимметричный ключ предоставляется сопоставленному с ним имени входа.To grant server-level permissions for a certificate or asymmetric key, grant the permissions to its mapped login.

ПРИМЕЧАНИЕ. Сопоставленное имя входа используется только для проверки правильности кода, подписанного соответствующим сертификатом или асимметричным ключом.NOTE: A mapped login is used only for authorization of code signed with the corresponding certificate or asymmetric key. Сопоставленные учетные записи не могут быть использованы для проверки правильности.Mapped logins cannot be used for authentication.

Как сами имена входа, так и выданные им разрешения хранятся в базе данных master.The mapped login and its permissions both reside in master. Если сертификат или асимметричный ключ находятся в иной базе данных, нежели в базе данных master, необходимо создать их копии в базе данных master и сопоставить с новым именем входа.If a certificate or asymmetric key resides in a database other than master, you must re-create it in master and map it to a login. При перемещении, копировании или восстановлении базы данных в другом экземпляре сервера необходимо повторно создать ее сертификат или асимметричный ключ в базе данных master в целевом экземпляре сервера, сопоставить его с новым именем входа и выдать последнему требуемые разрешения.If you move, copy, or restore the database to another server instance, you must re-create its certificate or asymmetric key in the master database of the destination server instance, map to a login, and grant the required server-level permissions to the login.

Создание сертификата или асимметричного ключаTo create a certificate or asymmetric key

Сопоставление сертификата или асимметричного ключаTo map a certificate or asymmetric key to a login

Выдача разрешений сопоставленному имени входаTo assign permissions to the mapped login

Дополнительные сведения о сертификатах и асимметричных ключах см. в разделе Encryption Hierarchy.For more information about certificates and asymmetric keys, see Encryption Hierarchy.

Свойство TRUSTWORTHYTrustworthy Property

Свойство TRUSTWORTHY базы данных используется для указания того, доверяет ли этот экземпляр SQL Server базе данных и ее содержимому.The TRUSTWORHTY database property is used to indicate whether this instance of SQL Server trusts the database and the contents within it. При подключении базы данных в целях безопасности это свойство по умолчанию устанавливается в значение OFF, даже если на исходном сервере оно имело значение ON.When a database is attached, by default and for security, this option is set to OFF, even if this option was set to ON on the original server. Дополнительные сведения об этом свойстве см. в статье Свойство TRUSTWORTHY базы данных. Сведения о его включении см. в статье ALTER DATABASE (Transact-SQL).For more information about this property, see TRUSTWORTHY database property and for information on turning this option ON, see ALTER DATABASE (Transact-SQL).

Replication SettingsReplication Settings

Если восстановить резервную копию реплицированной базы данных на другом сервере или в другой базе данных, то станет невозможным сохранение настроек репликации.If you restore a backup of a replicated database to another server or database, replication settings cannot be preserved. В этом случае после восстановления из резервной копии потребуется повторно создать все публикации и подписки.In this case, you must re-create all publications and subscriptions after backups are restored. Для облегчения этого процесса можно создать скрипты для текущих настроек репликации, а также для разрешения и отключения репликации.To make this process easier, create scripts for your current replication settings and, also, for the enabling and disabling of replication. Чтобы облегчить повторное создание всех настроек репликации, произведите копирование этих скриптов и измените в них имя сервера для работы с целевым экземпляром.To help re-create your replication settings, copy these scripts and change the server name references to work for the destination server instance.

Дополнительные сведения см. в разделах Создание резервных копий реплицируемых баз данных и восстановление из них, Зеркальное отображение и репликация баз данных (SQL Server) и Репликация и доставка журналов (SQL Server).For more information, see Back Up and Restore Replicated Databases, Database Mirroring and Replication (SQL Server), and Log Shipping and Replication (SQL Server).

Приложения компонента Service BrokerService Broker Applications

Многие аспекты приложения компонента Компонент Service BrokerService Broker перемещаются вместе с базой данных.Many aspects of a Компонент Service BrokerService Broker application move with the database. Однако некоторые из них в новом местоположении необходимо создать или настроить повторно.However, some aspects of the application must be re-created or reconfigured in the new location. По умолчанию в целях безопасности параметры is_broker_enabled и is_honor_broker_priority_on устанавливаются в значение OFF при подключении базы данных с другого сервера.By default and for security, when a database is attached from another server, the options for is_broker_enabled and is_honoor_broker_priority_on are set to OFF. Сведения о том, как установить эти параметры в значение ON, см. в статье ALTER DATABASE (Transact-SQL).For information about how to set these options ON, see ALTER DATABASE (Transact-SQL).

Startup ProceduresStartup Procedures

Стартовыми являются хранимые процедуры, помеченные для автоматического выполнения и выполняемые каждый раз при запуске SQL ServerSQL Server .A startup procedure is a stored procedure that is marked for automatic execution and is executed every time SQL ServerSQL Server starts. Если в базе данных имеются зависимости от автоматически запускаемых процедур, их необходимо определить на целевом экземпляре сервера и сконфигурировать для автоматического выполнения при запуске.If the database depends on any startup procedures, they must be defined on the destination server instance and be configured to be automatically executed at startup.

Triggers (at Server Level)Triggers (at Server Level)

Триггеры DDL вызывают хранимые процедуры в ответ на ряд событий языка DDL.DDL triggers fire stored procedures in response to a variety of Data Definition Language (DDL) events. Эти события в основном соответствуют инструкциям языка Transact-SQLTransact-SQL , начинающимся ключевыми словами CREATE, ALTER или DROP.These events primarily correspond to Transact-SQLTransact-SQL statements that start with the keywords CREATE, ALTER, and DROP. Системные хранимые процедуры, выполняющие операции, подобные операциям DDL, также могут запускать триггеры DDL.Certain system stored procedures that perform DDL-like operations can also fire DDL triggers.

Дополнительные сведения об этой возможности см. в разделе DDL Triggers.For more information about this feature, see DDL Triggers.

См. также:See Also

Автономные базы данных Contained Databases
Копирование баз данных на другие серверы Copy Databases to Other Servers
Присоединение и отсоединение базы данных (SQL Server) Database Detach and Attach (SQL Server)
Переход на вторичный сервер доставки журналов (SQL Server) Fail Over to a Log Shipping Secondary (SQL Server)
Переключение ролей во время сеанса зеркального отображения базы данных (SQL Server) Role Switching During a Database Mirroring Session (SQL Server)
Настройка зашифрованной зеркальной базы данных Set Up an Encrypted Mirror Database
Диспетчер конфигурации SQL Server SQL Server Configuration Manager
Диагностика пользователей, утративших связь с учетной записью (SQL Server)Troubleshoot Orphaned Users (SQL Server)