Sql Server 2008 Policies - un esempio
Una delle possibili applicazioni del Policy-Based Management di Sql Server 2008 è il rispetto delle naming conventions nel disegno dei database. Vediamo un semplice esempio.
--creo un database di test
USE [master]
GO
CREATE DATABASE [testPolicies]
GO
--creo lo schema che mi servirà per testare la policy
USE [testPolicies]
GO
CREATE SCHEMA [dev] AUTHORIZATION [dbo]
GO
creo una condition chiamata "condNomeTabella" dove specifico che i nomi delle tabelle dovranno iniziare per "tbl" e dovranno appartenere allo schema "dev" .
creo un policy chiamata "polNomeTabella", la applico al database di test creando una condizione apposita. Seleziono l'opzione "On change:prevent" per impedire a chi crea le tabelle di violare la policy.
Delle seguenti istruzioni CREATE TABLE solo la terza andrà a buon fine perchè sia il nome tabella sia lo schema saranno aderenti ai requisiti.
--violiamo la policy per il nome tabella
CREATE TABLE [dev].[testtable]
(
idTable int,
field1 varchar(50),
field2 varchar(50)
)
--violiamo la policy per lo schema
CREATE TABLE [dbo].[tblTest]
(
idTable int,
field1 varchar(50),
field2 varchar(50)
)
--OK, l'istruzione verrà eseguita correttamente
CREATE TABLE [dev].[tblTest]
(
idTable int,
field1 varchar(50),
field2 varchar(50)
)
Informazioni aggiuntive