Выбор данных с двух разных серверов в sql server

Инсталляция MS SQL Server

Подготовительный шаг – скачать установочный пакет SQL Server Enterprise с официальной страницы сайта Microsoft. После нажатия на кнопку «Бесплатная пробная версия» будет предложено выбрать вариант EXE или Azure («облако») и внести свои анкетные данные, при сохранении которых начнется загрузка инсталляционного файла.

Перед запуском установщика нужно создать учетную запись пользователя. Она пригодится для авторизации на сервере при запросе доступа с клиентских компьютеров (даже при условии, что ПК будет один и тот же).

Последовательность действий:

  1. В поиске набрать команду lusrmgr.msc и нажать Enter.
  2. Создать нового пользователя и задать ему пароль доступа.
  3. Сохранить изменения и перезагрузить компьютер.

Рекомендуется в имени и пароле использовать только буквы латиницы и цифры, кириллица будет привносить риски локальных сбоев из-за особенностей обработки. Теперь можно запускать файл с дистрибутивом MS SQL Server. Программа предложит 3 варианта действий: базовая инсталляция с настройками «по умолчанию», выборочный режим или скачивание файлов «на потом».

В большинстве случаев выбирается первый пункт, при нажатии на который предлагается прочитать и подтвердить лицензионное соглашение. На следующем шаге система позволяет вручную выбрать каталог для установки или согласиться с предложенным значением. Остается нажать на кнопку «Установить» и дождаться завершения процесса.

Файлы в основном скачиваются с официального сервера, поэтому понадобится стабильный доступ к интернету. Такой подход обеспечивает установку последнего релиза и проверку легитимности всех модулей (отсутствие вредоносного ПО). Последнее окно сообщает об успешном завершении, после которого можно сразу подключаться к серверу.

Зачем нужен SQL Server Management Studio

Для удобства администрирования также понадобится SQL Server Management Studio (SSMS). Он представляет собой интегрированную среду для управления инфраструктурой БД и поддерживает любые ее варианты – от локальной до Azure. В него встроены инструменты настройки, наблюдения и редактирования экземпляров баз данных.

Последовательность действий:

  1. Нажать кнопку «Установить SSMS» в окне инсталлятора SQL Server.
  2. Произойдет автоматическое перенаправление на официальную страницу продукта.
  3. Скачать последний релиз программного обеспечения на компьютер.
  4. Запустить инсталлятор и нажать кнопку «Установить».

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

Хостинг-провайдеры обычно предлагают предустановленный комплект поддержки баз данных на SQL Server.  Он не всегда последней версии, зато наверняка работоспособен в рамках как панели управления, так и публикуемых веб-ресурсов. Пользователю фактически предлагается сразу начать с создания БД – запрашивается всего лишь ее название, имя пользователя и пароль.

How-To: Import Excel 2007 to SQL Server x86

Step 1. Install the 32-bit Microsoft.ACE.OLEDB.12.0 driver

Step 2. Grant rights to TEMP directory

icacls C:\Windows\ServiceProfiles\<SQL Server Account>\AppData\Local\Temp /grant <User>:(R,W)

The most commonly used paths:

C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp
C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp

Step 3. Configure ACE OLE DB properties

EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
GO
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
GO

Step 4. Configure linked server using Microsoft.ACE.OLEDB.12.0 provider

EXEC sp_addlinkedserver
    @server = 'ExcelServer2',
    @srvproduct = 'Excel',
    @provider = 'Microsoft.ACE.OLEDB.12.0',
    @datasrc = 'C:\Test\excel-sql-server.xlsx',
    @provstr = 'Excel 12.0;IMEX=1;HDR=YES;'

Create a linked server with Transact-SQL

To create a linked server by using , use the sp_addlinkedserver (Transact-SQL), CREATE LOGIN (Transact-SQL), and sp_addlinkedsrvlogin (Transact-SQL) statements.

This example creates a linked server to another instance of SQL Server using Transact-SQL:

  1. In Query Editor, enter the following command to link to an instance of named :

    USE   
    GO  
    EXEC master.dbo.sp_addlinkedserver   
        @server = N'SRVR002\ACCTG',   
        @srvproduct=N'SQL Server';  
    GO  
    
  2. Execute the following code to configure the linked server to use the domain credentials of the login that is using the linked server.

    EXEC master.dbo.sp_addlinkedsrvlogin   
        @rmtsrvname = N'SRVR002\ACCTG',   
        @locallogin = NULL ,   
        @useself = N'True';  
    GO  

Языки манипулирования данными

Основное средство для общения с реляционными базами данных — язык структурированных запросов SQL.

Это декларативный язык. То есть инструкции в нём не идут одна за другой (не как в императивных языках). Каждый оператор SQL описывает только необходимое действие, а СУБД сама принимает решение, как его выполнить.

Например, чтобы выбрать все данные из таблицы Messages за 10.11.2020, делается запрос:

SELECT * FROM messages WHERE date = ‘10.11.2020’

Язык структурированных запросов делится на несколько частей (группы операторов) и позволяет:

  • определять данные (DDL),
  • манипулировать ими (DML),
  • контролировать доступ к данным (DCL)
  • и управлять транзакциями (TCL).

В SQL изначально нет средств для создания печатных отчётов, экранных форм и других инструментов для разработки программ. Хотя SQL сам по себе не является полноценным (Тьюринг-полным) языком программирования, но его стандарт позволяет создавать процедурные расширения. Они доводят его функциональность до полноценного языка программирования.

При этом синтаксис SQL в разных СУБД может различаться. Кое-где даже используются его отдельные диалекты, например:

  • T-SQL — для работы с Microsoft SQL Server;
  • на PL / SQL пишут хранимые процедуры и функции в Oracle;
  • на PL / pgSQL — в PostgreSQL.

В каких случаях следует использовать связанные серверы?

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

  • Возможность доступа к данным за пределами SQL Server.

  • Возможность осуществлять распределенные запросы, обновления, команды и транзакции на разнородных источниках данных по всему предприятию.

  • Возможность единообразной адресации разных источников данных.

Связанный сервер можно настроить с помощью SQL Server Management Studio или с помощью инструкции sp_addlinkedserver (Transact-SQL). Поставщики OLE DB существенно различаются по типу и количеству необходимых параметров. Например, некоторые поставщики требуют предоставления контекста безопасности для подключения с помощью sp_addlinkedsrvlogin (Transact-SQL). Некоторые поставщики OLE DB разрешают использовать SQL Server для обновления данных в источнике данных OLE DB. Другие предоставляют доступ к данным только для чтения. Для информации о каждом поставщике OLE DB обратитесь к документации об этом поставщике OLE DB.

Introduction

This document describes how to link a Microsoft SQL Server 7.0/2000 (MS SQL) and a MySQL 4.x server. After linking, the linked MySQL server behaves as if it is a local SQL Server. Having linked the two servers, examples of some things you could do are automatically synchronizing each Update/Insert/Delete on the MS SQL database immediately in the tables on the linked MySQL server or write a SQL query that uses tables and data on both servers simultaneously.

To perform this procedure, you require:

  • Microsoft SQL Server 2000 or 7.0.
  • MySQL 4.x. The server must have transaction support, which is included in versions 4.x and newer. The linking is possible against both InnoDB and MyISAM tables.
  • Communication between the MySQL server and the MS SQL Server on TCP port 3306. TCP port 3306 is the default port; you can use a different port if you want to.
  • MyODBC 3.51 installed on the MS SQL Server box. A separate DSN is not required. You can find the latest MyODBC release at http://dev.mysql.com/downloads/connector/odbc/3.51.html.

Виды SQL-серверов

Для реализации функций СУБД на сегодняшний день чаще всего используются следующие SQL-серверы:

  • MS SQL server — многопользовательский программный продукт, разработанный компанией Microsoft, обладающий высокой производительностью и отказоустойчивостью, тесно интегрированный с ОС Windows. Этот сервер поддерживает удаленные подключения, работает с многими популярными типами данных, дает возможность создавать триггеры и хранимые данные, имеет практичные и удобные утилиты для настройки;
  • Oracle Database server — СУБД, предназначенная для создания, консолидации и управления базами данных в облачной среде. Используя этот сервер, можно как автоматизировать обычные бизнес-операции, так и выполнять динамический многомерный анализ данных (OLAP), проводить операции с документами xml-формата и управлять разделенной и локальной информацией;
  • IBM DB2 — семейство СУБД для работы с реляционными базами данных, признанное самым производительным, имеющим высокие технические показатели и возможности масштабирования. SQL-серверы этой группы характеризуются мультиплатформенностью, способностью к мгновенному созданию резервных копий и восстановлению БД, реорганизации таблиц в онлайн-режиме, разбиению баз данных, определению пользователями новых типов данных;
  • MySQL — СУБД, разработанная и поддерживаемая компанией Oracle. В основном она используется локальными или удаленными клиентами, позволяя им работать с таблицами разных типов, поддерживающих полнотекстовый поиск или выполняющих транзакции на уровне отдельных записей;
  • PostgreSQL — СУБД с открытым исходным кодом, работающая с объектно-реляционными (поддерживающими пользовательские объекты) базами данных. Также PostgreSQL предназначена для создания, хранения и извлечения сложных структур данных. Она поддерживает самые различные типы данных (среди них — числовые, текстовые, булевы, денежные, бинарные данные, сетевые адреса, xml и другие).

Обучение работе с серверами баз данных SQL server возможно для всех желающих в рамках профессиональной подготовки по курсу«Инструментальные средства бизнес-аналитики», которую проводит ВШБИ НИУ ВШЭ. Записаться на обучение по данному курсу можно на нашем сайте.

Создание связанного сервера в Microsoft SQL Server

Создать связанный сервер в Microsoft SQL Server можно следующим образом:

  • Используя инструкции T-SQL;
  • Используя графический интерфейс среды SQL Server Management Studio.

Сегодня мы рассмотрим оба способа.

Исходные данные для примеров

Давайте представим, что у нас есть файл Excel, к которому нам нужно периодически обращаться в своих запросах, поэтому мы решили создать связанный сервер для удобства.

Файл Excel мы сохранили на диск D и он содержит следующие данные.

Подготовка к созданию связанного сервера

Чтобы подключаться к внешним источникам данных и выполнять распределенные запросы, на сервере должен быть установлен соответствующий провайдер.

В нашем случае мы будем использовать провайдер Microsoft.ACE.OLEDB.12.0 x64.

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

Чтобы проверить, есть ли у нас этот провайдер, мы можем запустить следующую процедуру или в обозревателе объектов открыть контейнер «Объекты сервера -> Связанные серверы -> Поставщики» и посмотреть там.

   
   EXEC sp_enum_oledb_providers;

В случае если у Вас в списке нет нужного провайдера, Вам необходимо скачать его с официального сайта Microsoft и установить.

Создание связанного сервера на T-SQL

Для создания и управления связанными серверами в Microsoft SQL Server существуют специальные хранимые процедуры:

  • sp_addlinkedserver – процедура создания связанного сервера;
  • sp_addlinkedsrvlogin – процедура настройки безопасности связанного сервера.

Таким образом, чтобы создать связанный сервер, нам необходимо выполнить следующие инструкции.

   
   --Создание связанного сервера
   EXEC sp_addlinkedserver @server = 'TEST_EXCEL',
                           @srvproduct = 'Excel',
                           @provider = 'Microsoft.ACE.OLEDB.12.0',
                           @datasrc = 'D:\TestExcel.xlsx',
                           @provstr = 'Excel 12.0;IMEX=1;HDR=YES;';
   
   --Настройки безопасности (авторизации)
   EXEC sp_addlinkedsrvlogin @rmtsrvname='TEST_EXCEL',
                             @useself= 'False',
                             @locallogin=NULL,
                             @rmtuser=NULL,
                             @rmtpassword=NULL;

В результате выполнения данных инструкций будет создан связанный сервер, источником которого будет выступать файл Excel, а также будут выполнены определённые настройки для авторизации на данном сервере.

В обозревателе объектов отобразится данный сервер.

Описание параметров процедуры sp_addlinkedserver

  • @server – название связанного сервера;
  • @srvproduct – название продукта;
  • @provider – провайдер (поставщик);
  • @datasrc – источник данных;
  • @provstr – строка поставщика для подключения.

Описание параметров процедуры sp_addlinkedsrvlogin

  • @rmtsrvname – название связанного сервера;
  • @useself – указывает, как будет происходить авторизация, с указанием логина и пароля, либо с использованием сопоставления с контекстом безопасности;
  • @locallogin – имя входа на локальный сервер;
  • @rmtuser – удаленное имя входа, используемое для подключения к связанному серверу;
  • @rmtpassword – пароль для удаленного имени входа.

Создание связанного сервера с помощью SQL Server Management Studio

Все то же самое, что мы сделали чуть выше с помощью инструкций T-SQL, мы можем выполнить и в графическом интерфейсе среды SQL Server Management Studio.

Для этого нажмите на контейнер «Связанные серверы» правой кнопкой мыши и выберите «Создать связанный сервер».

Затем в открывшемся окне внесите соответствующие данные для подключения (данные соответствуют параметрам процедуры sp_addlinkedserver).

Чтобы сделать точно такую же авторизацию, которую мы сделали в примере с использованием процедуры sp_addlinkedsrvlogin, необходимо перейти на вкладку «Безопасность» и выбрать пункт «Устанавливать с использованием текущего контекста безопасности имени для входа».

После этого нажать «ОК», и точно такой же связанный сервер с файлом Excel будет создан.

Connect to SQL Analysis Services as an ODBC Data Source

If you have not already, first specify connection properties in an ODBC DSN (data source name). This is the last step of the driver installation. You can use the Microsoft ODBC Data Source Administrator to create and configure ODBC DSNs.

To connect, provide authentication and set the Url property to a valid SQL Server Analysis Services endpoint. You can connect to SQL Server Analysis Services instances hosted over HTTP with XMLA access. See the Microsoft documentation to configure HTTP access to SQL Server Analysis Services.

To secure connections and authenticate, set the corresponding connection properties, below. The data provider supports the major authentication schemes, including HTTP and Windows, as well as SSL/TLS.

  • HTTP Authentication

    Set AuthScheme to «Basic» or «Digest» and set User and Password. Specify other authentication values in CustomHeaders.

  • Windows (NTLM)

    Set the Windows User and Password and set AuthScheme to «NTLM».

  • Kerberos and Kerberos Delegation

    To authenticate with Kerberos, set AuthScheme to NEGOTIATE. To use Kerberos delegation, set AuthScheme to KERBEROSDELEGATION. If needed, provide the User, Password, and KerberosSPN. By default, the data provider attempts to communicate with the SPN at the specified Url.

  • SSL/TLS:

    By default, the data provider attempts to negotiate SSL/TLS by checking the server’s certificate against the system’s trusted certificate store. To specify another certificate, see the SSLServerCert property for the available formats.

You can then access any cube as a relational table: When you connect the data provider retrieves SSAS metadata and dynamically updates the table schemas. Instead of retrieving metadata every connection, you can set the CacheLocation property to automatically cache to a simple file-based store.

See the Getting Started section of the CData documentation, under Retrieving Analysis Services Data, to execute SQL-92 queries to the cubes.

Репликация

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

Репликация позволяет использовать для повышения уровня доступности дополнительный узел и базу данных-получатель, причем база данных-получатель настолько же работоспособна, насколько и база данных-источник. Это достигается путем использования репликации слиянием, в ходе которой берутся транзакции как с базы данных-источника, так и с базы данных-получателя. Затем обобщенные изменения применяются к обеим базам. Как нетрудно догадаться, такая конфигурация требует процедуры разрешения конфликтов.

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

Репликация моментальных снимков очень похожа на доставку журналов, поскольку и та, и другая проводятся через запланированные интервалы времени, а обновление базы данных-получателя выполняется посредством общего изменения, а не путем применения каждой транзакции к обеим системам сразу после их фиксации. Способы реализации обеих технологий во многом похожи.

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

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

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

Нужно учитывать, что репликация — это проверенная и хорошо документированная технология. Использование репликации в качестве решения для повышения уровня доступности может иметь некоторые недостатки и приводить к снижению производительности, впрочем, не в большей степени, чем при применении зеркального отображения. Вероятнее всего, любое решение для повышения уровня доступности, построенное на основе репликации, будет иметь более сложную для управления архитектуру: не обязательно усовершенствованную, но точно более сложную. Кроме того, одна из наиболее значительных трудностей, которую нужно учитывать, состоит в следующем: если изменяется структура таблиц базы данных или необходимо настроить репликацию еще одной таблицы, придется удалить и заново определить публикацию, чтобы внести изменения в обе базы данных.

Not be made

If this radio button is chosen, any users that aren’t identified in the Local server login to remote server login mappings list cannot establish connection to the linked server.

For example, if login with different account (e.g. Ben) that not set in the login mapping list the list of the databases under the Catalogs folder will look like this:

If you attempt to execute a linked server query:

1
2
3

SELECT *FROMWSERVER2012\SQLEXPRESS.AdventureWorks2014.HumanResources.Employeee

 

The following result will appear:

Msg 7416, Level 16, State 1, Line 1
Access to the remote server is denied because no login-mapping exists.

Impersonate

The Impersonate check box when is checked passes the local login credentials to the linked server. For SQL Server Authentication, the same login with the exact credentials must exist on the linked server, otherwise when connected to the server with the SQL Server Authentication, the list of the databases under the Catalogs folder may look like this:

Let’s create a linked server using the local Windows login. From the Local Login combo box, choose the local Windows login and check the Impersonate checkbox and press the OK button:

Under the Catalogs folder, all databases that are located on the linked server will be listed:

Обзор Microsoft SQL SERVER 2012

C выходом SQL Server 2012 (ранее «Denali») разработчики располагают более удобными средствами создания приложений для работы с базами данных. Обновления, с одной стороны, позволили расширить круг решаемых задач, а с другой, добиться более производительной работы существующих решений. Администраторы баз данных смогут без особых усилий достичь требуемой надежности и безопасности информации. Кроме того, возросла степень защищенности хранимых на сервере данных. Бизнес-аналитики смогли оценить возможности нового аналитического механизма, который был предложен специалистами MS еще в SQL Server 2008 R2 в виде PowerPivot на стороне клиента (в Excel 2010) и на серверной стороне SharePoint 2010.

The Basics of Excel Data Import to SQL Server Using Linked Servers

To import data from Microsoft Excel 2003 files to 32-bit SQL Server the Microsoft.Jet.OLEDB.4.0 provider can be used. Use the T-SQL code like this to add a linked server to Excel 2003 workbook:

EXEC sp_addlinkedserver
    @server = 'ExcelServer1',
    @srvproduct = 'Excel',
    @provider = 'Microsoft.Jet.OLEDB.4.0',
    @datasrc = 'C:\Test\excel-sql-server.xls',
    @provstr = 'Excel 8.0;IMEX=1;HDR=YES;'

To import data from Microsoft Excel 2007 to 32-bit SQL Server or from any Microsoft Excel files to 64-bit SQL Server the Microsoft.ACE.OLEDB.12.0 provider should be used. Use the T-SQL code like this:

EXEC sp_addlinkedserver
    @server = 'ExcelServer2',
    @srvproduct = 'Excel',
    @provider = 'Microsoft.ACE.OLEDB.12.0',
    @datasrc = 'C:\Test\excel-sql-server.xlsx',
    @provstr = 'Excel 12.0;IMEX=1;HDR=YES;'

IMEX=1 defines to import all Excel column data including data of mixed types.

HDR=YES defines that Excel data contain column headers.

The way to modify a linked server is to drop and create it again. Use the T-SQL code like this:

EXEC sp_dropserver
    @server = N'ExcelServer1',
    @droplogins='droplogins'

There are two ways to use linked server data. The first way is like this:

SELECT * FROM ExcelServer1...

and the second one is the use of the OPENQUERY function:

SELECT * FROM OPENQUERY(ExcelServer1, 'SELECT * FROM ')

The use of the OPENQUERY function is more flexible because queries can contain Excel ranges unlike the entire sheet in the first case.

Security Options

Linked Servers offer the following security options….

  • Local server to remote server mappings

  • Not be made

  • Be made without using a security context

  • Be made using the logins current security context

  • Be made using this security context

Lets take a look at each one…

Local server to remote server mappings

This setting takes precedence over the other Linked Server security settings and gives the ability to map specific logins on the local instance to logins on the remote instance.

The login on the local instance can be either SQL or Windows authenticated but unfortunately, Windows Groups cant be used. The local login can be mapped to logins on the remote instance, where the permissions of the remote login would then be used.

Accounts can impersonate the same account on the remote server. For SQL logins, the username and password need to be exact matches on both instances. For Windows logins, a Service Principal Name (SPN) needs to be created on both instances. As this is done in Active Directory and very often not the responsibility of the DBA, this can be missing which can cause errors. I will go into more detail about SPNs later.

All other security settings are used for any accounts that are NOT specified in the local to remote server mappings.

Not be made

This setting denies access to the remote server for all logins except the ones specified in the local server to remote server mappings.

Be made without using a security context

Books online has the very unhelpful description for this setting…

My impression was that accounts would connect and use the privileges assigned to the public server role. Unfortunately, I have never been able to test this out as I always get the following error when trying to create the Linked Server with the setting…

If anyone knows how to make this setting work, please get in touch

Be made using the login’s current security context

This setting uses the same login connected to the local instance to connect to the remote instance. When using a SQL authenticated user, the username and password need to be the same on both instances. For Windows authenticated users, they can have direct access or be part of an AD group on the remote instance.

This setting gives the user access on the local instance to everything they have access to on the remote instance. If a user should only be accessing, from the local instance, a subset of the database\objects they have access to on the remote instance, then this may not be the correct setting to use.

Be made using this security context

This setting uses a SQL authenticated login on the remote instance for all connections using the Linked Server. A remote login and password need to specified within the Linked Server security options. Its not possible to use this setting with a Windows login or AD group.

I’ve seen people use the SA account for this setting, probably to overcome SPN issues with one of the other settings or the complexity involved with granting multiple accounts access to specific databases\objects on the remote instance. Making the remote login SA (or any login with sysadmin priveleges) will effectively allow the local login SA privileges on the remote instance.

an example…

Set the “Be made using this security context” to an account with sysadmin permissions. Then create an account on the remote instance with no permissions. I have used a login called LinkerServerTest.

USE masterGOCREATE LOGINLinkedServerTestWITH PASSWORD = N’LinkedServerTest’,DEFAULT_DATABASE = ,CHECK_EXPIRATION = OFF,CHECK_POLICY = OFFGO

Execute the following stored procedure on the local instance…

EXEC .MASTER.dbo.sp_addsrvrolemember’LinkedServerTest’,’sysadmin’

Now check the permissions that LinkerServerTest has…

(For this to work, the rpc out in the server options page needs to be set to true)

Какие СУБД бывают

На самом деле, существует достаточно много различных СУБД, некоторые из них платные и стоят немалых денег, если говорить о полнофункциональных версиях, но даже у самых, так скажем, «крутых» есть бесплатные редакции, которые, кстати, отлично подходят для обучения.

  • Microsoft SQL Server – это система управления базами данных от компании Microsoft. Она очень популярна в корпоративном секторе, особенно в крупных компаниях. И это не просто СУБД – это целый комплекс приложений, позволяющий хранить и модифицировать данные, анализировать их, осуществлять безопасность этих данных и многое другое;
  • Oracle Database – это система управления базами данных от компании Oracle. Это также очень популярная СУБД, и также среди крупных компаний. По своим возможностям и функциональности Oracle Database и Microsoft SQL Server сопоставимы, поэтому являются серьезными конкурентами друг другу, и стоимость их полнофункциональных версий очень высока;
  • MySQL – это система управления базами данных также от компании Oracle, но только она распространяется бесплатно. MySQL получила очень широкую популярность в интернет сегменте, т.е. именно на MySQL работают чуть ли не все сайты в интернете, иными словами, большинство сайтов в интернете используют эту СУБД как средство хранения данных;
  • PostgreSQL – эта система управления базами данных также является бесплатной, и она очень популярна и функциональна.

Полезные материалы по теме:

  • Установка Microsoft SQL Server 2016 Express – пример установки бесплатной редакции Microsoft SQL Server на Windows;
  • Установка Microsoft SQL Server 2017 Express на Ubuntu Server – пример установки бесплатной редакции Microsoft SQL Server на Linux;
  • Установка PostgreSQL 11 на Windows – пример установки PostgreSQL на Windows;
  • Установка MySQL на Windows – пример установки MySQL на Windows;
  • Установка и настройка MySQL на Linux Mint – пример установки MySQL на Linux;
  • Установка Oracle Database Express Edition 11g – пример установки бесплатной редакции Oracle на Windows (статья писалась давно, но все равно будет полезной).

Service Principal Name (SPN)

SPNs are vital when using Linked Servers with Windows Authentication. The following error can be received when using a Linked Server, which normally means an SPN hasnt been created…

MSDN describes SPNs as…

There are many articles on the internet that can explain SPNs and Kerberos authenication and the “double hop” problem much better than I can (this one is pretty good https://shuggill.wordpress.com/2015/03/06/configuring-sql-server-kerberos-for-double-hop-authentication/). The way I like to think about this problem is…

If you are using Window authentication on a laptop\desktop\application computer to connect to a SQL instance on another computer (one hop) which then uses a Linked Server to connect to an instance on another computer (second hop), you will need to create an SPN for the connection to work.

The above scenario is probably how most people are connecting and without SPNs, Windows accounts will not be able to gain access to the remote instance through the Linked Server.

I use the following two methods to find out if an SPN has been created.

1 – Check the SQL error log.

You’ll either get good news…

or bad news…

2 — Microsoft have produced the Kerberos Configuration Manager tool to help with the detection and creation of SPNs. The tool can be downloaded from…

https://www.microsoft.com/en-us/download/details.aspx?id=39046

Creating SPNs goes above what I’d like to talk about here, so instead use this link to show you how…

https://msdn.microsoft.com/en-us/library/ms191153.aspx

Approach 1 – Using Script to create Linked Server

/****** Object:LinkedServer ******/

—New Linked Server with Windows Authentication

EXEC master.dbo.sp_addlinkedserver

—Provide a Name for Linked server by which we want to create it

@server = N’BIMSQL01,@srvproduct=N’SQL Native Client’,

@provider=N’SQLNCLI’,

/*Name of the server that we want to point. Please note that the name of the linked server and the actual server it points to are different.*/

@datasrc=N’BIMSQL02,
@provstr=N’Provider=SQLOLEDB.1;/*complete connection string for a server that we want to point*/

Integrated Security=SSPI;

Persist Security Info=False;

Initial Catalog=ITSDB;

Data Source=BIMSQL02′

—If you have SQL login, provide credentials else make it as
NULL.

EXEC master.dbo.sp_addlinkedsrvlogin

@rmtsrvname=N’BIMSQL01′,—Name for Linked server

@useself=N’False’,

@locallogin=NULL,

@rmtuser=N’sa’,

@rmtpassword=’Q!W@E#R$’

GO

Creating an ODBC DSN for MySQL

In the previous article on MySQL Servers cited earlier, a DSN was created for moving data. Essentially the same DSN can be used. Herein follows a brief review of the DSN MySQL_Link created along the same lines as in the previously referenced article. The ODBC driver used for creating this ODBC DSN is the one installed on the machine when the MySQL Server was installed as shown.

The final interactive window where you may test the connectivity is shown in the next figure. You may notice that the database Testmove has been named in the ODBC DSN. The name MySQL_LINK is the ODBC DSN.

When you close the window after clicking the OK button, an ODBC DSN item will be added to the System DSN tab of the ODBC wizard as shown.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Вадлейд
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: