Zde je shrnutí nových funkcí, po kterém následuje podrobný pohled na několik z nich:
- Rozšířená podpora zobrazení: Upravte sloupce v cílovém seznamu zobrazení, včetně CREATE VIEW a inline zobrazení.
- Zásady redigování na základních sloupcích virtuálních sloupců: Redigujte základní sloupec ve virtuálním sloupci.
- Podpora inline zobrazení s operátory SET: Používejte běžné tabulkové výrazy (klauzule WITH), OUTER JOINs a agregační funkce, jako je COUNT a MAX, ve sloupcích se zásadami redakční úpravy dat.
- Vylepšená podpora dotazů pro DISTINCT, GROUP BY a ORDER BY: Dotazy, které obsahují výrazy v redigovaných sloupcích v seznamech GROUP BY a SELECT, jsou nyní plně podporovány.
Zde je podrobný pohled na nové funkce, doplněný příklady pomocí vzorového schématu Oracle. Pokud chcete pokračovat, musíte nainstalovat vzorové schéma Oracle, historii prodeje (SH)= nejnovější kopii najdete zde. Jinak si můžete přečíst příkazy a výstup, abyste pochopili vylepšení v Oracle Data Redaction pro Oracle Database 23.6.
Vytvořte uživatele pouze pro čtení a udělte mu příslušná oprávnění k objektům schématu SH.
create user sh_reader identified by Oracle123;
|
Začnete vytvořením zásady redakční úpravy dat, aniž byste zadali žádné sloupce. Na této zásadě budete stavět přidáním sloupců k redigování a dokonce specifikováním různých výrazů redigování pro určité sloupce. Tato výchozí zásada vždy rediguje hodnoty pro všechny kromě uživatele databáze SH.
BEGIN
|
Rozšířená podpora zobrazení
Databázové pohledy se často používají ke zjednodušení přístupu k datům jako forma zabezpečení dat, abstrakce dat, agregace dat nebo transformace dat. V této verzi nyní můžete zahrnout výrazy v redigovaných sloupcích do cílového seznamu zobrazení, včetně CREATE VIEW a inline zobrazení. Chcete například vytvořit zjednodušené zobrazení údajů o zákaznících s názvem CUSTOMER_VIEW. Toto zobrazení převede jméno a příjmení, stejně jako stav materiálu, do formátu, kterému budou rozumět vaše nástroje pro vytváření zpráv.
CREATE OR REPLACE VIEW sh.customer_view AS
|
Použijte zásadu redakce na sloupec CUST_MARITAL_STATUS základní tabulky:
BEGIN
|
Dále se připojte jako SH_VIEWER a zadejte dotaz na CUSTOMER_VIEW:
SELECT CUST_ID, FIRST_NAME, LAST_NAME, EMAIL, MARITAL_STATUS
|
V předchozích verzích, pokud vám nebylo uděleno oprávnění EXEMPT REDACTION POLICY, obdržíte tuto chybovou zprávu:
ORA-28094: SQL construct not supported by data redaction |
V Oracle Database 23.6 uvidíte vrácená data s redigovaným sloupcem MARITAL_STATUS.
SELECT CUST_ID, FIRST_NAME, LAST_NAME, EMAIL, MARITAL_STATUS
|
CUST_ID FIRST_NAME LAST_NAME EMAIL MARITAL_STATUS |
---------- --------------- --------------- -------------------------------------- -------------- |
101 LOU FITZ lou.fitz@company2.example.com |
103 AILEEN NEWKIRK aileen.newkirk@company2.example.com |
176 CARIN LIGHTFOOT carin.lightfoot@company2.example.com |
201 ALYSSA CLIPP alyssa.clipp@company2.example.com |
Jak jste ukázali, toto zobrazení aplikuje transformace na sloupce FIRST_NAME a LAST_NAME a upravuje formát sloupců rodinného stavu při zachování zásad redigování na podkladových datech. To umožňuje vašim uživatelům vidět data stejným způsobem ze zobrazení nebo tabulky.
Zásady redakce na základních sloupcích virtuálních sloupců
Spíše než žádat uživatele, aby se dotazovali na jednotlivé sloupce, možná budete chtít zkombinovat více sloupců do jednoho virtuálního sloupce. Například možná nebudete chtít zahrnout poštovní směrovací číslo zákazníka do výsledků dotazu, ale tento sloupec je zahrnut ve vašem virtuálním sloupci FULL_ADDRESS. Dříve nebylo možné použít zásady redakce na sloupec CUST_POSTAL_CODE. Ve 23.6 můžete a zde je příklad. Proveďte následující vytvoření virtuálního sloupce a zkombinujte CUST_STREET_ADDRESS, CUST_CITY, CUST_STATE_PROVINCE a CUST_POSTAL_CODE do FULL_ADDRESS.
ALTER TABLE sh.customers ADD (full_address AS (cust_street_address || ', ' || cust_city || ', ' || cust_state_province || ' ' || cust_postal_code)); |
BEGIN
|
V předchozích verzích jste nemohli použít zásadu redigování na sloupec, který je součástí virtuálního sloupce. Zobrazí se tato chybová zpráva:
ORA-28073: The column "CUST_POSTAL_CODE" has an unsupported data type or attribute. |
Pokud jste se v předchozích verzích pokusili přidat virtuální sloupec poté, co jste měli zásady redakce, zobrazila by se tato chyba:
ORA-28083: A redacted column was referenced in a virtual column expression. |
Ve verzi 23.6 můžete použít zásady redakce na sloupec CUST_POSTAL_CODE a nyní SH_READER uvidí výsledek takto:
SELECT cust_id, cust_last_name, full_address
|
CUST_ID CUST_LAST_NAME FULL_ADDRESS
|
Poznámka: V této verzi nemůžete použít zásady redigování na samotný virtuální sloupec, pouze na základní sloupce.
Nyní, když zadáte dotaz na zobrazení REDACTION_COLUMNS, uvidíte dva sloupce pro 19c a dva sloupce pro 23.6.
COLUMN column_name FORMAT a25
|
COLUMN_NAME FUNCTION_TYPE
|
Podpora inline zobrazení s operátory SET
Váš obchodní analytik vás požádal, abyste pomohli chránit údaje o úvěrovém limitu zákazníků vaší společnosti. Obchodní analytik potřebuje identifikovat počet zákazníků nad a pod průměrným úvěrovým limitem, aniž by odhalil platové údaje. K tomu musí analytik napsat složitý dotaz, který obsahuje běžné tabulkové výrazy (klauzule WITH), OUTER JOINs a agregační funkce, jako je COUNT a MAX. Můžete to udělat s Oracle Data Redaction 23.6!
Pro toto cvičení by měl obchodní analytik vidět sloupec CUST_POSTAL_CODE. Tento sloupec vypustíte ze zásady redakce dat a přidáte sloupec CUST_CREDIT_LIMIT jako plně redigovaný sloupec.
BEGIN
|
Následující dotaz vytvoří tabulku, která seskupuje zákazníky podle PSČ a zobrazuje počet zákazníků nad a pod úvěrovým limitem, aniž by ve výstupu poskytovala údaje o nejvyšším, nejnižším nebo průměrném úvěrovém limitu.
COLUMN cust_postal_code HEADING 'Postal|Code'
|
SH uvidí údaje o úvěrovém limitu.
Total
|
SH_READER neuvidí údaje o kreditním limitu.
Total
|
Uvidíte průměry sloupců, které potřebujete vidět, ale ne neredigované údaje o úvěrovém limitu. Uvědomte si, že editace dat neklade žádné omezení na klauzuli WHERE ad hoc SQL, takže klauzuli WHERE lze použít iterativním způsobem k odvození skutečných dat, i když v dotazovaném sloupci existuje zásada úpravy dat a pouze zobrazí se redigovaná hodnota. Pokud však máte připravené analytické sestavy, jako je uvedeno výše, můžete snížit riziko odhalení citlivých dat, aniž byste museli přepisovat dotaz nebo aktualizovat nástroj pro vytváření sestav.
Rozšířená podpora dotazů pro DISTINCT, GROUP BY a ORDER BY
Většina analytických nebo pokročilých dotazů závisí na podpoře klauzulí DISTINCT, GROUP BY a ORDER BY. Dotazy, které obsahují výrazy v redigovaných sloupcích v seznamech GROUP BY i SELECT, jsou nyní plně podporovány. Dotazy využívající klauzule SELECT DISTINCT a ORDER BY mohou nyní navíc obsahovat redigované sloupce, což zajišťuje, že citlivá data zůstanou chráněna, aniž by byla ohrožena funkčnost dotazů.
Předvedete, jak můžete redigovat citlivá data v dotazech analytického typu. Tento dotaz vybere odlišné hodnoty z redigovaného sloupce a seřadí je, přičemž zachová soukromí dat při řazení.
COLUMN cust_postal_code HEADING 'Postal|Code'
|
Před tímto vydáním byste obdrželi chybu, jako je tato:
ORA-28094: SQL construct not supported by data redaction |
Ale v 23.6 můžete vidět data seřazená podle agregovaného součtu mezd pro každé oddělení.
COLUMN cust_postal_code HEADING 'Postal|Code'
|
SH uvidí údaje o úvěrovém limitu.
Postal Total
|
SH_READER neuvidí údaje o kreditním limitu.
Postal Total
|
Obnovte schéma SH do původní konfigurace.
Chcete-li vyčistit zobrazení, zásady redakce dat a zrušit virtuální sloupec, spusťte následující SQL:
DROP VIEW sh.customer_view;
|
Tyto aktualizace Oracle Data Redaction poskytují výkonné nové nástroje pro správce databází a vývojáře, které zajišťují, že citlivá data zůstanou v bezpečí a budou v souladu s průmyslovými standardy. Integrací těchto funkcí do vaší strategie správy dat můžete zlepšit zabezpečení i funkčnost svých databází Oracle.
Oracle Data Redaction v Oracle Autonomous Database 23ai si můžete zdarma vyzkoušet na Oracle LiveLabs, nebo nás rovnou kontaktujte.
Zdroj: Oracle