Azure SQL - Невозможно создать зашифрованный мастер-ключ - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь создать мастер-ключ для своей базы данных, потому что я следую учебному пособию для выполнения перекрестных запросов к БД.

Учебное пособие: https://www.scarydba.com/2016/03/21/cross-database-queries-in-azure-sql-database/

Это похоже на вопрос Невозможно создать мастер-ключ для базы данных master в azure sql, но я получаю сообщение:

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

... когда я пытаюсь создать главный ключ в зашифрованном виде. Что я делаю не так, и есть ли другой вариант совершать кросс-вызовы с помощью Azure?

Я выполняю следующее:

CREATE MASTER KEY ENCRYPTION BY PASSWORD='SUPERSTRONGPASSWORD'
GO

С уважением

1 Ответ

0 голосов
/ 22 апреля 2020

Согласно моему опыту, мастер-ключ уже создан и существует, когда мы создаем базу данных Azure SQL.

Когда мы создаем мастер-ключ :

-- Create a db master key if one does not already exist, using your own password.
CREATE MASTER KEY ENCRYPTION BY PASSWORD='<EnterStrongPasswordHere>';

Поскольку мастер-ключ уже существует, мы не смогли создать новый.

В большинстве случаев Azure SQL кросс-запросы к базе данных не требуют создания мастер-ключа.

Например, я использую приведенный ниже запрос для перекрестного запроса в БД из Mydatabase в Mydatabase2:

--The "username" and "password" should be the username and password used to log in into the Customers database.
CREATE DATABASE SCOPED CREDENTIAL ElasticDBQueryCred
 WITH IDENTITY = '<username>',
 SECRET = '<password>';  

 --To create an external data source, execute the following command on the Orders database:
 CREATE EXTERNAL DATA SOURCE MyElasticDBQueryDataSrc WITH
    (TYPE = RDBMS,
    LOCATION = '<server_name>.database.windows.net',
    DATABASE_NAME = 'Customers',
    CREDENTIAL = ElasticDBQueryCred,
) ;

--Create an external table on the Orders database, which matches the definition of the CustomerInformation table:
CREATE EXTERNAL TABLE [dbo].[test]
( [id] [int] ,
  [age] [int]
  )
WITH
( DATA_SOURCE = MyElasticDBQueryDataSrc)

--query the table 
select * from test

Тестовая таблица в Mydatabase2: enter image description here

Кросс-запрос базы данных в Mydatabase: enter image description here

Для получения подробной информации, пожалуйста, обращайтесь: Начало работы с кросс-запросами .

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...