--AULA 01 - Viewing Current Activity
-- ====================================================================================
-- Autor : Lineu Alves Lima Filho
-- Data Criação : 19/02/2009
-- Descrição : Módulo 09
-- ====================================================================================
-- Versão : 1.0
-- ====================================================================================
-- Versão :
-- Data Atualização :
-- ====================================================================================
--Overview of Activity Monitor
--Dynamic Management Views and Functions
--Visualizando as sessões que estão utilizando mais processamento
SELECT session_id, --ID da sessão
cpu_time --Utilização do processamento em milesegundos
FROM sys.dm_exec_requests
ORDER BY cpu_time DESC
--Comparar com a System Procedure abaixo
sp_who2 --active
--Visualizando número de processos de leitura e escrita enviadas para o arquivo de LOG
SELECT database_id, --ID do banco de dados
num_of_reads, --Número de processos de leitura enviadas para o arquivo
num_of_writes --Número de processos de escrita enviadas para o arquivo
FROM sys.dm_io_virtual_file_stats(DB_ID('AdventureWorks'), 2) --2 é o ID do arquivo de LOG
--Descobrindo o ID dos arquivos de banco de dados
USE AdventureWorks
GO
SELECT name, file_id
FROM sys.database_files
--Visualizando informações de hardware do servidor
SELECT cpu_count, --Número de processadores lógicos
physical_memory_in_bytes, --Quantidade de memória física disponível
sqlserver_start_time --Data e hora da última vez que o SQL Server foi reiniciado
FROM sys.dm_os_sys_info
SELECT * FROM sys.dm_tran_locks
--AULA 02 - 002 - Using SQL Server Profiler
-- ====================================================================================
-- Autor : Lineu Alves Lima Filho
-- Data Criação : 19/02/2009
-- Descrição : Módulo 09
-- ====================================================================================
-- Versão : 1.0
-- ====================================================================================
-- Versão :
-- Data Atualização :
-- ====================================================================================
--Overview of SQL Server Profiler
-------------------------------------------
--Sessão 01
-------------------------------------------
USE AdventureWorks2008
GO
SELECT COUNT(*) FROM Person.Person
-------------------------------------------
--Sessão 01
-------------------------------------------
USE [master]
GO
SELECT name, compatibility_level, state_desc
FROM sys.databases
--AULA 03 - 003 - Monitoring with DDL Triggers
-- ====================================================================================
-- Autor : Lineu Alves Lima Filho
-- Data Criação : 19/02/2009
-- Descrição : Módulo 09
-- ====================================================================================
-- Versão : 1.0
-- ====================================================================================
-- Versão :
-- Data Atualização :
-- ====================================================================================
--Exemplo 1
USE [master]
GO
IF EXISTS (SELECT * FROM sys.databases
WHERE [name] = 'DB6231')
DROP DATABASE DB6231
GO
CREATE DATABASE DB6231
GO
USE DB6231
GO
CREATE TABLE auditoria
(
codigo INT IDENTITY,
maquina NVARCHAR(100),
dados XML
)
CREATE TRIGGER DDL_audita_tabela
ON DATABASE
FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE
AS
INSERT INTO auditoria(maquina, dados) VALUES (HOST_NAME(), EVENTDATA())
GO
CREATE TABLE TEST
(
codigo INT IDENTITY,
nome VARCHAR(50)
)
GO
SELECT * FROM auditoria
ALTER TABLE TEST
ADD PRIMARY KEY (codigo)
SELECT * FROM auditoria
DROP TABLE TEST
SELECT * FROM auditoria
DROP TRIGGER DDL_audita_tabela
ON DATABASE
--Exemplo 2
USE [master]
GO
IF EXISTS (SELECT * FROM sys.databases
WHERE [name] = 'DB6231')
DROP DATABASE DB6231
GO
CREATE DATABASE DB6231
GO
USE DB6231
GO
CREATE TABLE auditoria
(
codigo INT IDENTITY,
data DATETIME,
maquina SYSNAME ,
usuario NVARCHAR(100),
evento NVARCHAR(100),
comando NVARCHAR(2000),
dados XML
)
CREATE TRIGGER DDL_audita_tabela
ON DATABASE
FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE
AS
DECLARE @data XML
SET @data = EVENTDATA()
INSERT INTO auditoria (data, maquina, usuario, evento, comando, dados)
VALUES (GETDATE(),
HOST_NAME(),
CURRENT_USER,
@data.value('(/EVENT_INSTANCE/EventType)[1]', 'NVARCHAR(100)'),
@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'NVARCHAR(2000)'),
EVENTDATA())
GO
CREATE TABLE TEST
(
codigo INT IDENTITY,
nome VARCHAR(50)
)
GO
SELECT * FROM auditoria
ALTER TABLE TEST
ADD PRIMARY KEY (codigo)
SELECT * FROM auditoria
DROP TABLE TEST
SELECT * FROM auditoria
DROP TRIGGER DDL_audita_tabela
ON DATABASE
--Exemplo 3
USE [master]
GO
CREATE TRIGGER DDL_logins
ON ALL SERVER
FOR CREATE_LOGIN
AS
PRINT 'Você não tem permissão para criar login. Entre em contato com o DBA!'
ROLLBACK
--Criando um login
USE [master]
GO
CREATE LOGIN [app_user] WITH PASSWORD='123',
DEFAULT_DATABASE=[master],
CHECK_EXPIRATION=OFF,
CHECK_POLICY=OFF
GO
Nenhum comentário:
Postar um comentário