Инструкция для 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. Необязательные параметры для изменения:
256и4096- значения битов для побитовых операций. Оставьте как есть, если вы точно не знаете, что делаете, так как эти значения соответствуют конкретным функциям системы.- Можно добавить дополнительные ID продуктов, раскомментировав строки вида
OR grd.[Products ].[ProductId ] = 11и заменив 11 на нужные ID.
4. Адаптация скрипта для 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)
5. Выполнение скрипта:
- Скопируйте адаптированный скрипт в новое окно запроса SSMS
- Сначала выполните скрипт в режиме “только чтение”, добавив в начало:
BEGIN TRANSACTION; -- ваш скрипт здесь SELECT @@ROWCOUNT AS 'UpdatedRows'; ROLLBACK TRANSACTION; - Проверьте количество обновленных строк (выведется в результатах)
- Если результат вас устраивает, выполните скрипт без транзакции (уберите 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
Инструкция для 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
Важно: Перед выполнением скриптов на рабочей базе данных всегда делайте резервную копию! Если вы не уверены в правильности параметров, проконсультируйтесь с администратором базы данных.