You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 16 Next »

Обратите внимание!

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

Пример SQL-скрипта в виде файла можно скачать тут: set_product_feature_flags.sql

Инструкция для Microsoft SQL Server

Описание скрипта:
Этот скрипт обновляет специальные флаги для продуктов в базе данных. Он отключает функцию «one session key» (бит 256) и включает новую функцию защиты от RDP (бит 4096). Скрипт применяется только к продуктам определенного вендора и может быть дополнительно отфильтрован по конкретным ID продуктов.

Пошаговая инструкция:

1. Подготовка к выполнению скрипта:

  • Откройте SQL Server Management Studio (SSMS)
  • Подключитесь к вашему серверу баз данных
  • Убедитесь, что у вашей учетной записи есть права на изменение данных в таблицах

2. Обязательные параметры для изменения (найдите в скрипте и замените):

  • grd - имя схемы базы данных. Замените на актуальное имя схемы в вашей базе данных. Обычно это “dbo” или другое имя, используемое в вашем проекте.
  • 13 в условии WHERE grd.[Products ].[Vendors_VendorId ] = 13 - ID поставщика, для которого нужно обновить флаги. Замените на ID вашего поставщика.
  • 10 в условии AND (grd.[Products ].[ProductId ] = 10) - ID продукта для обновления. Замените на ID вашего продукта или раскомментируйте дополнительные условия для нескольких продуктов.

3. Скрипт изменения флагов для SQL Server:

UPDATE pf
SET pf.[Flags ] = pf.[Flags ] & ~256 | 4096
FROM [grd].[ProductFeatures ] pf
JOIN [grd].[Products ] p ON pf.[Products_ProductId ] = p.[ProductId ]
WHERE p.[Vendors_VendorId ] = 13
AND (p.[ProductId ] = 10)

4. Выполнение скрипта:

  • Скопируйте адаптированный скрипт в новое окно запроса SSMS

  • Сначала выполните скрипт в режиме “только чтение”, добавив в начало:

    BEGIN TRANSACTION;
    -- ваш скрипт здесь
    SELECT @@ROWCOUNT AS 'UpdatedRows';
    ROLLBACK TRANSACTION;
  • Проверьте количество обновленных строк (выведется в результатах)
  • Если результат вас устраивает, выполните скрипт без транзакции (уберите BEGIN/ROLLBACK)

5. Проверка результатов:

  • Выполните SELECT-запрос для проверки обновленных данных:
    SELECT pf.[ProductId ], pf.[Flags ] 
    FROM [grd].[ProductFeatures ] pf
    JOIN [grd].[Products ] p ON pf.[Products_ProductId ] = p.[ProductId ]
    WHERE p.[Vendors_VendorId ] = 13 AND p.[ProductId ] = 10

Инструкция для PostgreSQL

Описание скрипта:
Этот скрипт изменяет специальные флаги продуктов в базе данных PostgreSQL. Он деактивирует старую функцию “one session key” (бит 256) и активирует новую функцию защиты программного RDP (бит 4096). Обновление применяется только к продуктам конкретного поставщика и может быть ограничено определенными ID продуктов.

Пошаговая инструкция:

1. Подготовка к выполнению скрипта:

  • Откройте pgAdmin или любой другой клиент для PostgreSQL (например, DBeaver)
  • Подключитесь к вашему серверу баз данных
  • Убедитесь, что у вашей учетной записи есть права UPDATE на соответствующие таблицы

2. Обязательные параметры для изменения (найдите в скрипте и замените):

  • grd - имя схемы базы данных. Замените на актуальное имя схемы в вашей базе данных. Обычно это “public” или другое имя, используемое в вашем проекте.
  • 13 в условии WHERE grd."Products "."Vendors_VendorId " = 13 - ID поставщика для обновления флагов. Замените на ID вашего поставщика.
  • 10 в условии AND (grd."Products "."ProductId " = 10) - ID продукта для обновления. Замените на ID вашего продукта или раскомментируйте дополнительные условия для нескольких продуктов.

3. Необязательные параметры для изменения:

  • 256 и 4096 - значения битов для побитовых операций. Оставьте как есть, если вы точно не знаете, что делаете, так как эти значения соответствуют конкретным функциям системы.
  • Можно добавить дополнительные ID продуктов, раскомментировав строки вида OR grd."Products "."ProductId " = 11 и заменив 11 на нужные ID.

4. Скрипт изменения флагов для PostgreSQL:

UPDATE grd."ProductFeatures "
SET "Flags " = "Flags " & ~256 | 4096
FROM grd."Products "
WHERE grd."ProductFeatures "."Products_ProductId " = grd."Products "."ProductId "
AND grd."Products "."Vendors_VendorId " = 13
AND (grd."Products "."ProductId " = 10)

5. Выполнение скрипта:

  • Скопируйте адаптированный скрипт в окно запроса pgAdmin
  • Сначала выполните скрипт в режиме “только чтение”, добавив в начало:
    BEGIN;
    -- ваш скрипт здесь
    SELECT COUNT(*) AS updated_rows FROM grd."ProductFeatures "
    WHERE "ProductFeatures "."Products_ProductId " IN (SELECT "ProductId " FROM grd."Products " WHERE "Vendors_VendorId " = 13 AND "ProductId " = 10);
    ROLLBACK;
  • Проверьте количество обновленных строк в результатах

  • Если результат вас устраивает, выполните скрипт без транзакции (уберите BEGIN/ROLLBACK)

6. Проверка результатов:

  • Выполните SELECT-запрос для проверки обновленных данных:

    SELECT pf."ProductId ", pf."Flags " 
    FROM grd."ProductFeatures " pf
    JOIN grd."Products " p ON pf."Products_ProductId " = p."ProductId "
    WHERE p."Vendors_VendorId " = 13 AND p."ProductId " = 10
  • No labels