Sempre più aziende guardano con interesse a registri distribuiti e tecnologie Blockchain per non dover dipendere da entità centralizzate di controllo e verifica. Tuttavia, il settore è ancora in continua evoluzione e l’adozione di questo tipo di approccio potrebbe essere eccessivo per molti sistemi che sono ancora per loro natura centralizzati, e la cui riscrittura risulterebbe in investimenti importanti. In questa sessione vedremo una tecnologia antimanomissione dei dati introdotta recentemente in Azure SQL Database.
Youtube: https://www.youtube.com/watch?v=3hpPpK-qUM0
In questa sessione vedremo una panoramica delle soluzioni SQL Server IaaS e PaaS disponibili in AWS e come affrontare al meglio una migrazione verso tali ambienti.
Youtube: https://www.youtube.com/watch?v=3hpPpK-qUM0
In questa sessione vedremo una panoramica delle soluzioni SQL Server IaaS e PaaS disponibili in AWS e come affrontare al meglio una migrazione verso tali ambienti.
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...Gianluca Hotz
In questo appuntamento affronteremo l'argomento migrazione SQL Server su cloud e come AWS Database Migration Service (DMS) può aiutarci. Per scoprire diversi modi per migrare un database SQL Server su AWS cloud. Per imparare come usare DMS per migrare un database SQL Server su AWS cloud- Per scoprire i vantaggi dell'utilizzo di DMS.
SQL Server Failover Cluster Instances con Amazon FSx in AWSGianluca Hotz
Implementare un cluster di SQL Server in modalità AlwaysOn Failover Cluster Instances (FCI) con Amazon Web Services (AWS). In particolare, utilizzando il servizio Amazon EC2 per l’esecuzione delle istanze SQL Server, e il servizio Amazon FSx for Windows File Server per gestire lo storage condiviso, ed implementare una architettura distribuita multi-AZ.
SQL Server Failover Cluster Instances con Azure Managed DisksGianluca Hotz
Youtube: https://www.youtube.com/watch?v=dgyXkN3FVb4
Come implementare un cluster di SQL Server AlwaysOn Failover Cluster Instances (FCI) con Azure Managed Disks.
Youtube: https://www.youtube.com/watch?v=jh3CJ1ns0JQ
Il Query Processor è uno dei componenti più sofisticati di un RDBMS, quello di SQL Server non fa eccezione e sono state introdotte molte novità per risolvere le Query in modo più efficiente. In questa sessione affronteremo l'argomento ripercorrendo le varie funzionalità a partire dal nuovo modello del "Cardinality Estimator", introdotto nella versione 2014, per arrivare a tutto ciò che ricade sotto il nome di "Intelligent Query Processor" tra cui le funzionalità di "Adaptive Query Processing", introdotte nella versione 2017, e le novità introdotte nella versione 2019. Il tutto senza dimenticare le funzionalità per aiutare a gestire eventuali problematiche di regressione e coadiuvato da dimostrazioni pratiche.
SQL Server Data Virtualization with polybaseGianluca Hotz
Demos: https://github.com/ghotz/Presentations/tree/master/SQL%20Start%202020/Demos
Event site: https://www.sqlstart.it/2020
Vimeo: https://vimeo.com/ugiss/polybase
Polybase è la tecnologia introdotta con SQL Server 2016 per eseguire query distribuite in ambienti eterogenei. Inizialmente con un supporto di sistemi esterni limitato, in SQL Server 2019 è stato esteso per supportare non solo Hadoop e SQL Server in tutte le declinazioni, tra cui Azure SQL Data Warehouse, ma anche Teradata, Oracle, MongoDB e sistemi generici accessibili via ODBC. In questa sessione vedremo come funziona il meccanismo di integrazione dal punto di vista tecnico con qualche esempio pratico.
Azure Data Factory: l'evoluzione della specie della data integrationRoberto Messora
Microsoft definisce Azure Data Factory come un servizio gestito di hybrid data integration, una descrizione fin troppo generica per una delle componenti più importanti della cloud data platform.
In questa sessione entreremo nel merito delle funzionalità offerte da Data Factory, degli scenari di data integration supportati e delle opzioni di security soprattutto in contesti ibridi cloud/on-premise.
Scopriremo che trasferire e trasformare dati nel cloud può essere semplice e relativamente poco costoso.
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL ServerAlessandro Alpi
SQL Server non è un mondo, è un universo ricco di funzionalità, architetture e tecnologie. Può spaventare e può essere difficile muoversi al suo interno con la necessaria fluidità. In questa sessione vedremo quali plugin e strumenti sono disponibili per velocizzare lo sviluppo su SQL Server, da Visual Studio Code a Management Studio, da SQL Operations Studio ai tool di RedGate. Migliorare gestione e scrittura di codice, con un occhio di riguardo alla condivisione e al team working, in un mondo in cui DevOps la fa da padrone.
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
Questa sessione affronta come implementare, mantenere e far evolvere soluzioni sviluppate su Azure SQL Database, attraverso l’utilizzo degli strumenti SQL Sever Management Studio e Visual Studio. Attraverso esempi e casi reali, saranno illustrate la versatilità, potenza e affidabilità del database come servizio nel cloud.
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
Questa sessione affronta come implementare, mantenere e far evolvere soluzioni sviluppate su Azure SQL Database, attraverso l’utilizzo degli strumenti SQL Sever Management Studio e Visual Studio. Attraverso esempi e casi reali, saranno illustrate la versatilità, potenza e affidabilità del database come servizio nel cloud.
Code quality e test automatizzati con JavaScriptRoberto Messora
JavaScript è ormai ovunque nel mondo dello sviluppo web, è sbarcato persino sul server, la produzione di codice è aumentata a dismisura, framework e librerie sono spuntati come funghi, ma... siamo sicuri di mandare in produzione codice di qualità? quali strumenti e quali tecniche abbiamo a disposizione per aumentare la confidenza circa la bontà di ciò che scriviamo? Quali strategie possiamo adottare per migliorare il ciclo di vita delle nostre soluzioni e le attività di sviluppo?
In questa sessione proveremo a illustrare come organizzare la codebase di una tipica solution JavaScript, quali strategie adottare per migliorare la qualità del codice a cominciare dallo unit testing, quali strumenti utilizzare per automatizzare tutte le attività ripetitive a valle della scrittura del codice,
L'obiettivo è quello di proporre un modo per disciplinare le attività di sviluppo e rendere il più possibile confortevole la vita professionale dello sviluppatore web.
Una web farm bilanciata e scalabile con Microsoft AzureDavide Benvegnù
Uno dei principali vantaggi che la piattaforma di Azure offre è la possibilità di scalare rapidamente le applicazioni in the cloud, in risposta alle fluttuazioni di carico.
Normalmente si scalano website o cloud services, ma se invece abbiamo le nostre applicazioni hostate su una Virtual Machine e le vogliamo scalare orizzontalmente? Anche questo è possibile.
Vedremo come realizzare una WebFarm bilanciata che scala in base alle reali necessità di carico usando gli strumenti che Azure mette a disposizione, sia su IaaS che su PaaS.
Analysts spend up to 80% of their time on data preparation delaying the time to analysis and decision making.” -Analysts spend up to 80% of their time on data preparation delaying the time to analysis and decision making.” Gartner
CDays15 - AZ08 - DocumentDB: il NoSql secondo AzureDavide Benvegnù
DocumentDB è il nuovo database documentale NoSQL disponibile su Microsoft Azure, particolarmente adatto agli scenari in cui è richiesta una grande scalabilità ed alte prestazioni nell'accesso ai dati.
In questa sessione analizzeremo le sue caratteristiche, capiremo come si usa e come poter sviluppare applicazioni reali che lo utilizzano.
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...Gianluca Hotz
In questo appuntamento affronteremo l'argomento migrazione SQL Server su cloud e come AWS Database Migration Service (DMS) può aiutarci. Per scoprire diversi modi per migrare un database SQL Server su AWS cloud. Per imparare come usare DMS per migrare un database SQL Server su AWS cloud- Per scoprire i vantaggi dell'utilizzo di DMS.
SQL Server Failover Cluster Instances con Amazon FSx in AWSGianluca Hotz
Implementare un cluster di SQL Server in modalità AlwaysOn Failover Cluster Instances (FCI) con Amazon Web Services (AWS). In particolare, utilizzando il servizio Amazon EC2 per l’esecuzione delle istanze SQL Server, e il servizio Amazon FSx for Windows File Server per gestire lo storage condiviso, ed implementare una architettura distribuita multi-AZ.
SQL Server Failover Cluster Instances con Azure Managed DisksGianluca Hotz
Youtube: https://www.youtube.com/watch?v=dgyXkN3FVb4
Come implementare un cluster di SQL Server AlwaysOn Failover Cluster Instances (FCI) con Azure Managed Disks.
Youtube: https://www.youtube.com/watch?v=jh3CJ1ns0JQ
Il Query Processor è uno dei componenti più sofisticati di un RDBMS, quello di SQL Server non fa eccezione e sono state introdotte molte novità per risolvere le Query in modo più efficiente. In questa sessione affronteremo l'argomento ripercorrendo le varie funzionalità a partire dal nuovo modello del "Cardinality Estimator", introdotto nella versione 2014, per arrivare a tutto ciò che ricade sotto il nome di "Intelligent Query Processor" tra cui le funzionalità di "Adaptive Query Processing", introdotte nella versione 2017, e le novità introdotte nella versione 2019. Il tutto senza dimenticare le funzionalità per aiutare a gestire eventuali problematiche di regressione e coadiuvato da dimostrazioni pratiche.
SQL Server Data Virtualization with polybaseGianluca Hotz
Demos: https://github.com/ghotz/Presentations/tree/master/SQL%20Start%202020/Demos
Event site: https://www.sqlstart.it/2020
Vimeo: https://vimeo.com/ugiss/polybase
Polybase è la tecnologia introdotta con SQL Server 2016 per eseguire query distribuite in ambienti eterogenei. Inizialmente con un supporto di sistemi esterni limitato, in SQL Server 2019 è stato esteso per supportare non solo Hadoop e SQL Server in tutte le declinazioni, tra cui Azure SQL Data Warehouse, ma anche Teradata, Oracle, MongoDB e sistemi generici accessibili via ODBC. In questa sessione vedremo come funziona il meccanismo di integrazione dal punto di vista tecnico con qualche esempio pratico.
Azure Data Factory: l'evoluzione della specie della data integrationRoberto Messora
Microsoft definisce Azure Data Factory come un servizio gestito di hybrid data integration, una descrizione fin troppo generica per una delle componenti più importanti della cloud data platform.
In questa sessione entreremo nel merito delle funzionalità offerte da Data Factory, degli scenari di data integration supportati e delle opzioni di security soprattutto in contesti ibridi cloud/on-premise.
Scopriremo che trasferire e trasformare dati nel cloud può essere semplice e relativamente poco costoso.
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL ServerAlessandro Alpi
SQL Server non è un mondo, è un universo ricco di funzionalità, architetture e tecnologie. Può spaventare e può essere difficile muoversi al suo interno con la necessaria fluidità. In questa sessione vedremo quali plugin e strumenti sono disponibili per velocizzare lo sviluppo su SQL Server, da Visual Studio Code a Management Studio, da SQL Operations Studio ai tool di RedGate. Migliorare gestione e scrittura di codice, con un occhio di riguardo alla condivisione e al team working, in un mondo in cui DevOps la fa da padrone.
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
Questa sessione affronta come implementare, mantenere e far evolvere soluzioni sviluppate su Azure SQL Database, attraverso l’utilizzo degli strumenti SQL Sever Management Studio e Visual Studio. Attraverso esempi e casi reali, saranno illustrate la versatilità, potenza e affidabilità del database come servizio nel cloud.
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
Questa sessione affronta come implementare, mantenere e far evolvere soluzioni sviluppate su Azure SQL Database, attraverso l’utilizzo degli strumenti SQL Sever Management Studio e Visual Studio. Attraverso esempi e casi reali, saranno illustrate la versatilità, potenza e affidabilità del database come servizio nel cloud.
Code quality e test automatizzati con JavaScriptRoberto Messora
JavaScript è ormai ovunque nel mondo dello sviluppo web, è sbarcato persino sul server, la produzione di codice è aumentata a dismisura, framework e librerie sono spuntati come funghi, ma... siamo sicuri di mandare in produzione codice di qualità? quali strumenti e quali tecniche abbiamo a disposizione per aumentare la confidenza circa la bontà di ciò che scriviamo? Quali strategie possiamo adottare per migliorare il ciclo di vita delle nostre soluzioni e le attività di sviluppo?
In questa sessione proveremo a illustrare come organizzare la codebase di una tipica solution JavaScript, quali strategie adottare per migliorare la qualità del codice a cominciare dallo unit testing, quali strumenti utilizzare per automatizzare tutte le attività ripetitive a valle della scrittura del codice,
L'obiettivo è quello di proporre un modo per disciplinare le attività di sviluppo e rendere il più possibile confortevole la vita professionale dello sviluppatore web.
Una web farm bilanciata e scalabile con Microsoft AzureDavide Benvegnù
Uno dei principali vantaggi che la piattaforma di Azure offre è la possibilità di scalare rapidamente le applicazioni in the cloud, in risposta alle fluttuazioni di carico.
Normalmente si scalano website o cloud services, ma se invece abbiamo le nostre applicazioni hostate su una Virtual Machine e le vogliamo scalare orizzontalmente? Anche questo è possibile.
Vedremo come realizzare una WebFarm bilanciata che scala in base alle reali necessità di carico usando gli strumenti che Azure mette a disposizione, sia su IaaS che su PaaS.
Analysts spend up to 80% of their time on data preparation delaying the time to analysis and decision making.” -Analysts spend up to 80% of their time on data preparation delaying the time to analysis and decision making.” Gartner
CDays15 - AZ08 - DocumentDB: il NoSql secondo AzureDavide Benvegnù
DocumentDB è il nuovo database documentale NoSQL disponibile su Microsoft Azure, particolarmente adatto agli scenari in cui è richiesta una grande scalabilità ed alte prestazioni nell'accesso ai dati.
In questa sessione analizzeremo le sue caratteristiche, capiremo come si usa e come poter sviluppare applicazioni reali che lo utilizzano.
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source controlAlessandro Alpi
We are used to see our code under source control. What about our databases? This topic is too often underestimated. Keeping database under our control (source controlled) brings many advantages in terms of organization and quality. The distributed work become rock solid and Continuous integration is simpler to implement. In addition, we can take many advantages from testing, automated deployment and all the stuff that brings the agile methodology available to the team. We will compare also third party tools in order to understand the differences between different vendors.
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...Marco Parenzan
Windows Azure sta cambiando profondamente la nostra vita professionale portando le nostre risorse nel Cloud. Rinominando Team Foundation Services in Visual Studio Online, si è pronti a fare un passaggio ulteriore: portare parte dell'attività di sviluppo totalmente online. "Monaco" è un progetto ancora agli inizi, ma molto promettenti, per sviluppare progetti web completamente nel browser. Vediamo cosa possiamo farci, tra sviluppo , scelte tecnologiche, gestione del progetto e deployment.
In Azure there are many different app models to choose among to satisfy our needs. One is the component workflow oriented Azure Logic Apps. Compose a workflow of Api Api calls.
Con Xebialabs affrontiamo il tema della gestione della Toolchain devops e Release/Deploy in modo orchestrato e remotizzato.
XebiaLabs, leader del mercato ARA come riportato da Gartner e
Forrester. Con XebiaLabs gestire i rilasci dal punto di vista di processo e di effettivo deploy delle applicazioni è solo un fatto di configurazione, al resto pensa l’engine di XebiaLabs.
Gestione completa di active directory & exchange - User Conference ManageEngi...ManageEngine Italia
AD360 è una soluzione integrata di Identity & Access Management (IAM) in ambienti Windows. Questo strumento interamente web-based offre tutte le funzionalità di cui necessità un'azienda: dal provisioning degli utenti al self-service password reset, alla gestione della sicurezza attraverso un'auditing dettagliato su tutti gli oggetti AD alla gestione delle mailboxes in Exchange. AD360 è la giusta soluzione per colmare il divario tra la tecnologia e l'esigenza del business.
ManageEngine AD360 - Gestione e reporting Active DirectoryManageEngine Italia
AD360 è una soluzione integrata di Identity & Access Management (IAM) in ambienti Windows. Questo strumento interamente web-based offre tutte le funzionalità di cui necessità un'azienda: dal provisioning degli utenti al self-service password reset, alla gestione della sicurezza attraverso un'auditing dettagliato su tutti gli oggetti AD alla gestione delle mailboxes in Exchange. AD360 è la giusta soluzione per colmare il divario tra la tecnologia e l'esigenza del business.
Semplificare le operazioni di IAM
La maggior parte delle attività cruciali in AD sono ripetitive e l'automazione può far risparmiare enormi sforzi. Automazione delle attività come il provisioning degli utenti attraverso un processo in grado di garantire che i dati sensibili non finiscano in mani sbagliate.
Garantire la conformità e la sicurezza
Ogni volta che si esegue una modifica su un oggetto in Active Directory, AD360 è in grado di determinare se tale modifica è conforme alle normative come HIPAA o SOX. AD360 inoltre è in grado di fornire un auditing molto dettagliato di Active Directory, Exchange, e File server.
Automatizzare le operazioni di AD
Automatizzare le attività di AD come la creazione degli utenti, la cancellazione di utenti inattivi, l'abilitazione / disabilitazione degli utenti. Pianificare gli "Automation Policy" al fine di automatizzare qualsiasi tipo di attività in Active Directory.
Controllo workflow automation
Possibilità di disegnare l'intero processo di Workflow Automation multilivello di qualsiasi attività in AD, dalla richiesta iniziale, all'approvazione sino all'implementazione della stessa.
Garantire un self-service sicuro
Garantire il self-service per la reimpostazione della password o lo sblocco dell'account nel Winlogon (CTRL + ALT + CANC) può ridurre drasticamente i ticket verso l'helpdesk e mantenere alta la produttività dei dipendenti.
Monitorare il Traffico di Exchange
Monitorare completamente il traffico di Exchange, come l'utilizzo di OWA, il traffico e-mail, il dimensionamento della cassetta postale, le autorizzazioni e le relazioni.
http://www.manageengine.it/windows-active-directory-tools.html
Multitenancy con SQL Server e Azure SQL DatabaseGianluca Hotz
In questa sessione faremo il punto sulle soluzioni disponibili per venire incontro agli scenari di implementazione multitenancy con SQL Server e Azure SQL Database.
Microsoft SQL Server PaaS (Platform as a Service)Gianluca Hotz
SQL Server in modalità gestita (Platform as a Service) offre un servizio di database relazionale con una copertura funzionale praticamente identica a quella del Database Engine di un SQL Server tradizionale con una riduzione dei costi di implementazione e manutenzione e, in alcuni casi, il beneficio di nuove funzionalità tipicamente introdotte in anticipo rispetto alle versioni On-Premises. In questa sessione faremo una panoramica sullo stato dell'arte delle offerte Micorsoft, con Azure SQL Database, in tutte le sue declinazioni, con particolare attenzione alle Managed Instance, e di quella Amazon con RDS for SQL Server.
SQL Server 2022 Programmability & PerformanceGianluca Hotz
SQL Server 2022 has introduced many new features across all areas of the product. In this session, we will focus on the news regarding programmability and performance improvements.
SQL Server 2022 includes several new features to improve performance, security, and availability. Some key enhancements include buffer pool parallel scans to improve scalability on large memory machines, "hands-free" temporary database improvements to reduce latch contention, and query store hints to shape query plans without code changes. The document provides links to documentation on using new features like resumable add table constraints, XML compression, and hybrid buffer pool direct writes.
Data Integrity with SQL Database LedgerGianluca Hotz
Gianluca Hotz presented on SQL Database Ledger, which enables data integrity in SQL databases through cryptography. SQL Database Ledger captures database state changes in blockchain-inspired data structures called ledgers to provide a tamper-evident record. It makes SQL database data tamper-evident through cryptography while providing the same SQL users already know across Azure and on-premises. SQL Database Ledger offers both append-only and updatable ledger tables to suit different use cases.
Best Practices for Running Microsoft SQL Server on AWSGianluca Hotz
The document discusses best practices for running Microsoft SQL Server on AWS. It provides an overview of options for deploying SQL Server on AWS, including using Amazon RDS or Amazon EC2. When using RDS, AWS manages the SQL Server instance and provides features like automated backups and read replicas. When using EC2, the user has more control but must manage SQL Server, backups, and high availability. The document discusses considerations and techniques for optimizing SQL Server performance on EC2, including storage options and configuration.
This document provides an overview of Azure SQL database and related services including:
- Azure SQL Database which provides single database and elastic pool models for predictable or shared workloads.
- Azure SQL Managed Instance which provides high compatibility with SQL Server in a PaaS model.
- Related Azure data and analytics services for ingestion, storage, preparation, modeling and serving of data.
- Key capabilities of Azure SQL Database around data migration, programmability, security and operations.
1. Azure SQL Database Ledger
Gianluca Hotz
@glhotz
Data Platform MVP - Presidente UGISS.ORG
2. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Chi sono?
• Gianluca Hotz | @glhotz | ghotz@ugiss.org
• Consulente indipendente
• 25 anni su SQL Server (dalla 4.21 nel 1996)
• Modellazione e sviluppo database, dimensionamento e amministrazione
database server, aggiornamenti e migrazioni, performance tuning
• Community
• 23 anni Microsoft MVP SQL Server/Data Platform (dal 1998)
• VMware Experts SQL Server
• Fondatore e presidente UGISS (ex «PASS Chapter»)
• (Co-organizzatore DAMAG Meetup Community)
3. #CDays15 – Milano 24, 25 e 26 Marzo 2015
Tecnologie «Ledger» e «Digital Trust»
Le aziende si stanno spostando da
intermediari e audit manuali che sono
lenti e costosi…
...a tecnologie «Ledger» che riducono i
costi, fanno risparmiare tempo e
riducono i rischi
4. #CDays15 – Milano 24, 25 e 26 Marzo 2015
Previsioni crescita mercato «blockchain»
https://www.forbes.com/sites/robertanzalone/2020/05/13/will-enterprise-
blockchain-survive-a-new-report-says-that-the-blockchain-technology-market-
will-reach-21-billion-by-2025/#7a5f793954b8
Gartner Predicts 2019: Blockchain Technologies
5. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Transaction
Node(s)
Member 2
Validator
Node(s)
Transaction
Node(s)
Member 3
Validator
Node(s)
Transaction
Node(s)
Member 1
Validator
Node(s)
No data integrity
off-chain
«Blockchain» esagerate in scenari centralizzati
• Decentramento richiede a tutte le parti di
ospitare nodi per partecipare al consenso
• Regole di «governance» devono essere
stabilite dal consorzio e distribuite/gestite
• Latenza associata a consenso può influire
su velocità effettiva transazioni
(<1000 TPS per «Ethereum»
• Archiviazione «off-chain» per
interrogazioni è tipica, ma integrità si perde
nel processo
• Sistemi personalizzati con tool immaturi
rendono sviluppo e gestione impegnativi
6. #CDays15 – Milano 24, 25 e 26 Marzo 2015
Rende dati in SQL a
prova di manomissione
tramite crittografia
Fornisce traccia
cronologica delle
modifiche, verificata
tramite prove
crittografiche
Lo stesso SQL Server già
usato in Azure e «on-
premises»
Azure SQL Database Ledger
7. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Append-Only
Ledger Table
Trusted
Storage
Database Ledger
Block N Block N-1 Block N-2
Updatable
Ledger Table
History Table
Ledger View
Tabelle «Ledger»
• «Updatable» permettono «insert/update/delete»
• Cronologia aggiornamento mantenuta tabella
storica e nella «Ledger View» di facile consultazione
• Integrità tabelle «aggiornabile» e «storico»
mantenuta tramite collegamenti crittografici nel
«Database Ledger»
• Ricevute digitali caricate periodicamente in storage
attendibile configurato dal cliente
• Cliente può utilizzare ricevute digitali per verificare
integrità dei dati
• «Append-Only» permesso solo «insert»
• rimuovono necessità tabella «storico»
8. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
«Database Ledger»
• Cattura incrementalmente stato database
• A livello logico: «blockchain» e strutture dati «Merkle Tree»
• Cattura anche metadati transazione (es. timestamp, utente)
• Blocchi e informazioni transazioni in tabelle di sistema
• sys.database_ledger_transactions
• sys.database_ledger_blocks
• Blocchi chiusi
• ogni 30 secondi
• oppure esecuzione manuale sys.sp_generate_database_ledger_digest
9. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
«Database Digest»
• Hash ultimo blocco «Ledger»
• Rappresenta stato di tutte le tabelle «Ledger»
• Devono essere mantenuti in uno storage affidabile e immutabile
• Altrimenti si potrebbero manomettere le informazioni (in teoria)
• Possibilità di generarli manualmente o in automatico
• Generati in automatico possono essere anche salvati in automatico
• «Immutable Blob Storage»
• «Azure Confidential Ledger» (ACL)
10. #CDays15 – Milano 24, 25 e 26 Marzo 2015
Storage attendibile
«Immutable Blob Storage»
• Storage «Write Once, Read Many» basato
su policy
• BLOB possono essere impostati in sola
lettura per intervallo specificato
• Dati bloccati solo funzionalmente in base
a policy
• Supporto per «audit logging» ma
creatore log deve essere considerato
attendibile
• Microsoft è la «Trusted Computing Base»
«Azure Confidential Ledger» (ACL)
• Storage «Write Once, Read Many» in
perpetuo
• BLOB scritti nel «Ledger» non possono
essere modificati
• Utilizza «Confidential Enclaves» a prova di
manomissione
• Crea ricevute transazioni e file «Ledger»
serializzati contenenti informazioni che
possono essere verificate dai clienti
• Microsoft è fuori dalla «TCB», codice
sorgente è open source (Confidential
Consortium Framework)
11. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Verifica del «Ledger»
• Manomissione possibile a meno di modifiche impedite/tracciate
• Es. modifica diretta file dati, DBCC WRITEPAGE ecc.
• Verifica ricalcola tutti gli hash e li confronta con i «digest»
• Operazione richiede uso intensivo di risorse
• Verificare
• quando necessario (es. sospetto manomissione, audit)
• su base ricorrente (es. giornalmente, ogni ora)
• Verifica tramite procedura di sistema dipende da modalità salvataggio
• automatico: passando indirizzo storage
• manuale: passando documento JSON con «Digest»
12. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
«Ledger auditing»
• Nuovi eventi SQL Audit
• ENABLE LEDGER
• Creazione tabelle (o conversione, non ancora supportata)
• ALTER LEDGER
• Eliminazione/cambio nome tabelle (non ancora supportati)
• GENERATE LEDGER DIGEST
• VERIFY LEDGER
• LEDGER_OPERATION_GROUP
13. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Demo
Abilitazione Database Ledger
14. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Selezione opzione «deployment»
19. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Tabella Aggiornabile
CREATE SCHEMA [Account];
GO
CREATE TABLE [Account].[Balance]
(
[CustomerID] int NOT NULL PRIMARY KEY CLUSTERED
, [LastName] varchar(50) NOT NULL
, [FirstName] varchar(50) NOT NULL
, [Balance] decimal(10,2) NOT NULL
)
WITH (
SYSTEM_VERSIONING = ON --(HISTORY_TABLE = [Account].[BalanceHistory])
, LEDGER = ON --(LEDGER_VIEW = [Account].[BalanceLedgerView])
);
GO
20. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Transazioni di inserimento
-- Prima transazione
INSERT INTO [Account].[Balance]
VALUES
(1, 'Jones', 'Nick', 50);
GO
-- Seconda transazione
INSERT INTO [Account].[Balance]
VALUES
(2, 'Smith', 'John', 500)
, (3, 'Smith', 'Joe', 30)
, (4, 'Michaels', 'Mary', 200);
GO
21. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Selezione da tabella
-- Di default le colonne con le informazioni relative alle
-- transazioni non vengono tornate (trasparente applicazioni)
SELECT *
FROM [Account].[Balance];
GO
22. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Selezione da tabella campi aggiuntivi
-- Devono essere selezionate esplicitamente
SELECT *
, [ledger_start_transaction_id]
, [ledger_end_transaction_id]
, [ledger_start_sequence_number]
, [ledger_end_sequence_number]
FROM [Account].[Balance];
GO
23. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Aggiornamento
UPDATE[Account].[Balance]
SET[Balance] = 100
WHERE[CustomerID] = 1;
GO
24. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Interrogazione dopo aggiornamento
-- Interroghiamo la tabella aggiornabile, quella di storico e la vista
SELECT *
,[ledger_start_transaction_id]
,[ledger_end_transaction_id]
,[ledger_start_sequence_number]
,[ledger_end_sequence_number]
FROM [Account].[Balance];
SELECT * FROM [Account].[MSSQL_LedgerHistoryFor_1525580473];
SELECT * FROM [Account].[Balance_Ledger] ORDER BY [ledger_transaction_id];
GO
25. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Risultato interrogazione
26. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Tabella «Append-Only»
CREATE SCHEMA [AccessControl];
GO
CREATE TABLE [AccessControl].[KeyCardEvents]
(
[EmployeeID] int NOT NULL PRIMARY KEY CLUSTERED
, [AccessOperationDescription] nvarchar(MAX) NOT NULL
, [Timestamp] datetime2 NOT NULL
)
WITH (
LEDGER = ON (APPEND_ONLY = ON)
);
GO
27. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Inserimento e aggiornamento
-- Inseriamo una prima riga
INSERT INTO [AccessControl].[KeyCardEvents]
VALUES ('43869', 'Building42', '2020-05-02T19:58:47.1234567');
GO
-- Se proviamo a fare un'aggiornamento, da errore
UPDATE [AccessControl].[KeyCardEvents]
SET[EmployeeID] = 34184
WHERE[EmployeeID] = 43869;
GO
30. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Limitazioni generali
• Opzione a livello di database non può essere disabilitata
• No conversione tabelle esistenti
• No cambio di nome o spostamento di «schema»
• No eliminazione dati tabelle di storico (tabelle aggiornabili)
• Transazione può aggiornare solo (!) 200 tabelle
• «Long-term backups» (LTR) non supportati
• «Ledger» aggiornabili ereditano limitazioni tabelle temporali
31. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Limitazioni di interoperabilità
• Tabelle «In-memory» non supportate
• No operazioni di SWITCH IN/OUT
• No indici di tipo «Full-Text»
• No indice «non-clustered rowstore» con «clustered columnstore»
• No «Change Tracking»
• No tabelle FILETABLE
• No utilizzo API UPDATETEXT e WRITETEXT
32. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Limitazioni schema
• Numero massimo di colonne (sempre 1024)
• Tabelle aggiornabili +4 colonne
• Tabelle solo accodamento +2 colonne
• Aggiunta solo di colonne «nullable» (senza WITH VALUES)
• No eliminazione colonne, modifica limitata:
• NULL/NOT NULL, lunghezza tipi a lunghezza variabile, SPARSE
• «Collation» per tipi Unicode, se non cambia «code page» per gli altri
• No tipi dato XML, FILESTREAM, SqlVariant e «user-defined»
• Colonne «computed» solo deterministiche
• No «Sparse Column Set»
33. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Scenari per tabelle «Ledger»
• In generale: quelli che necessitano solo della «Forward Integrity»
• Sistema attendibile al processamento della transazione, protetto contro
manomissioni future
• Alcuni esempi
• Semplificazione scenari di audit
• Verifica crittografica manomissione dati verso terze parti (interne o esterne)
• Processi aziendali tra più parti
• Alternativa a «blockchain» per sistemi intrinsecamente centralizzati in ottica «trust, but
verify»
• Storage «off-chain» affidabile per interrogazioni dati «blockchain»
• «Choosing an Azure ledger technology»
• https://techcommunity.microsoft.com/t5/azure-sql/choosing-an-azure-ledger-
technology/ba-p/2450502
34. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Risorse
• Announcement blog
• https://aka.ms/sql-ledger-blog
• Azure SQL Database ledger Documentation
• https://aka.ms/sql-ledger-docs
• Whitepaper
• https://aka.ms/sql-ledger-whitepaper
35. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
Grazie!
• Il materiale sarà online nei prossimi giorni su
http://www.communitydays.it