junho 02, 2006

Data Dude

Enfim alguem lembrou que existe um ser chamado Desenvolvedor de Banco de dados que assim como todos os outros desenvolvedores precisa de uma ferramenta de desenvolvimento rápida e de qualidade!

A Microsoft está lançando uma versão do Visual Studio Team System voltada exclusivamente para os desenvolvedores de bancos de dados. O anuncio oficial aconteu no dia 31 de maio e pode ser lido no link "Microsoft Enhances Collaboration for Database Professionals With New Addition to Visual Studio Product Line"

O site do Visual Studio for Database Professionals está disponível no link http://msdn.microsoft.com/vstudio/teamsystem/products/dbpro/default.aspx. No site é possível conhecer as funcionalidades do produto e visualizar alguns screenshots.

O responsável pelo time de desenvolvimento é o Gert Drapes e a história do "Data Dude" pode ser encontrada no seu blog no link http://blogs.msdn.com/gertd/

Outros blogs da equipe de desenvolvimento são:

http://blogs.msdn.com/camerons
http://blogs.msdn.com/rwaymi
http://blogs.msdn.com/mattnunn
http://blogs.msdn.com/thomas_murphys_agile_db_blog
http://blogs.msdn.com/tsdatabl

Posted by Carlos at 12:06 PM | Comments (0)

maio 25, 2006

Segurança no SQL Server 2005 - Conheça as novidades

capa_resumo_SQL31.gif

Já está nas bancas a SQL Magazine número 31 que traz o meu artigo Segurança no SQL Server 2005 - Conheça as novidades

Resumo do artigo:
Integridade e segurança são duas dentre as muitas razões para o armazenamento de informações em um banco de dados. Entende-se por integridade não somente a garantia de que um dado está fisicamente armazenado no banco de dados, mas de que o dado foi inserido, alterado, apagado ou acessado somente por aqueles que possuem permissões adequadas. Entende-se por segurança o controle de usuários, objetos e os relacionamentos de permissões existentes entre eles. É função de um sistema gerenciador de banco de dados fornecer um modelo de segurança capaz de garantir a integridade lógica e segurança dos dados armazenados. É de responsabilidade do administrador de banco de dados conhecer este modelo e suas formas de implementação.
Neste artigo o leitor será apresentado a algumas das novidades no modelo de segurança do SQL Server 2005. O SQL Server 2005 é aderente ao conceito de “trustworth computing” da Microsoft que segue as seguintes linhas de pensamento:

* Seguro na arquitetura: a Microsoft esforçou-se para diminuir a área de ataque do SQL Server 2005 através da análise dos vetores de ataques mais comuns;
* Seguro por padrão: uma instalação padrão do SQL Server 2005 não implementa todas as funcionalidades e alguns serviços não são instalados. Alguns exemplos são: a stored procedure XP_CMDSHELL que vem desabilitada por padrão e, a base de teste AdventureWorks (que substitui as bases Pubs e Northwind) que também não é instalada por padrão.
* Seguro na instalação: o SQL Server 2005 agregou ferramentas para a configuração de segurança, monitoramento e auditoria do banco. Dentre as novas ferramentas estão o Surface Area Configuration - que permite configurar funcionalidades e serviços ativos no SQL Server 2005 - triggers de auditoria e políticas de senha para usuários SQL.

Este artigo explora algumas das novas funcionalidades de segurança do SQL Server 2005 com relação à Surface Area Configuration, triggers de auditoria, políticas de senha para os usuários SQL, controle de permissões granulares, separação entre usuários e schema e contexto de execução. O foco será dado no banco de dados relacional SQL Server 2005, pois os serviços Analysis Services, Integration Services, Reporting Services e Replication Services merecem um artigo a parte.

Posted by Carlos at 11:27 PM | Comments (6)

janeiro 12, 2006

Webcast - Respostas

Conforme prometido estou postando o caminho para o arquivo que fala sobre Windows GEO-Cluster.

This paper discusses multi-site network load balancing, server cluster configurations, and how to deploy geographically dispersed clusters. Also covered are key server cluster features in Windows Server 2003.

http://www.microsoft.com/windowsserver2003/techinfo/overview/clustergeo.mspx

Posted by Carlos at 04:58 PM | Comments (1)

Webcast

Hoje às 17:00 estarei apresentando um WebCast no TechnetBrasil sobre as Novidades do clustering fail-over no SQL Server 2005.

O Webcast apresentará as novidades da solução de fail-over clustering do SQL Server 2005. Inicialmente será revisto o conceito de alta disponibilidade e o Microsoft Cluster Service (MSCS), responsável pelo gerenciamento do Fail-Over Clustering. Também serão apresentadas as novidades no suporte, processo de instalação, manutenção e gerenciamento do Microsoft SQL Server 2005 fail-over clustering. Ao final serão apresentadas as melhores práticas para a montagem de uma solução de alta disponibilidade com o Microsoft SQL Server 2005 e Windows 2003.

Posted by Carlos at 01:58 PM | Comments (8)

dezembro 07, 2005

Segunda parte do artigo sobre Clustering

Já está nas bancas a revista SQLMagazine com a segunda parte do meu artigo sobre SQL Server Fail-over Clustering.

capa_SQL26.jpg

Veja o resumo e não deixe de conferir!

SQL Server 2000 fail-over clustering Parte II: Instalação e Configuração ( Como instalar e configurar o SQL Server 2000 em cluster utilizando o Virtual Server 2005)

Neste artigo aprenderemos a configurar o Virtual Server 2005 para instalação do Windows 2003 Enterprise Edition configurado em cluster para posterior instalação do SQL Server 2000 Enterprise Edition em cluster. Ao longo do artigo serão revistos conceitos básicos do Microsoft Cluster Service (MSCS) e do SQL Server 2000 Fail-Over Clustering, apresentados na primeira parte desse artigo. Assume-se que o leitor possua conhecimentos sobre instalação do Windows 2003, configuração de rede, criação de contas de usuário no Active Directory e instalação do SQL Server 2000. O público alvo deste artigo são administradores de banco de dados que administram ou irão administrar o SQL Server 2000 Cluster e precisam criar um ambiente de teste e treinamento tanto para planejar as suas mudanças em produção quanto para aprofundar os seus conhecimentos sobre o funcionamento das tecnologias de alta disponibilidade da Microsoft.

Posted by Carlos at 04:42 PM | Comments (28)

outubro 28, 2005

Artigo sobre Clustering na SQL Magazine

Ja está nas bancas a revista SQLMagazine número 25 que traz (na capa!) o meu artigo intitulado "Clustering no SQL Server".

Digitalizar.jpg

Posted by Carlos at 04:08 PM | Comments (9)

outubro 13, 2005

SP4 no SQL Server 2000

Há vários motivos para se instalar o Service Pack 4 do SQL Server 2000. Alem da lista de correções há duas alterações que valem a pena serem vistas.

A primeira delas é implementação de detecção de stalled I/O. Antes do SP4 era muito difícil a detecção de problemas causados por stalled I/O e em geral era necessário utilizar algumas trace flags ou até mesmo executar dumps de memória. O artigo SQL Server 2000 SP4 diagnostics help detect stalled and stuck I/O operations apresenta em detalhes esta nova funcionalidade.

Outra novidade é a apresentação de latchs na coluna blocked da tabela sysprocess. Antes do SP4 o diagnóstico de problemas de lentidão causados por latch não era fácil. O artigo The blocked column in the sysprocesses table is populated for latch waits after you install SQL Server 2000 SP4 apresenta as diferenças de apresentação de lock e latches e como diagnosticar problemas causados por latches.

Posted by Carlos at 11:02 AM | Comments (0)

agosto 23, 2005

SQL Server 2000 SP4 64bits

Aqui vai uma dica para quem vai aplicar o Service Pack 4 no SQL Server 2000 64 bits:
Quando for aplicar o service pack coloque o CD original do SQL Server 2000 64 bits no drive de CD e copie os arquivos do Service Pack 4 para um disco local do servidor. "Aparentemente" há um problema no instalador do Service Pack 4 do SQL Server 2000 64 bits que causa uma falha na instalação quando os dois itens acima não são atendidos.
Lembro que isso somente vale para a versão 64 bits do SQL Server 2000. A versão 32 bits não precisa deste procedimento.
Para a versão 32 bits há hot-fix pós-service pack descrito no KB899761 que deve ser aplicado após o Service Pack 4 caso o servidor esteja configurado com suporte a AWE.

Posted by Carlos at 11:47 PM | Comments (0)

julho 27, 2005

Upgrade Advisor - CTP June Refresh

O Upgrade Advisor é uma ferramenta que acompanha o SQL Server 2005 e tem por objetivo servir de auxílio no momento do planejamento e execução da migração do SQL Server 7 e 2000 para o SQL Server 2005.
O Upgrade Advisor permite analisar um servidor SQL Server, um arquivo de trace,pacotes DTS, Reporting Services, Analysis Services e até mesmos scripts de modo a saber se estes componentes são compatíveis com o SQL Server 2005.
O Upgrade Advisor está incluído no download público do SQL Server 2005 CTP June, mas uma nova versão foi lançada na data de ontem.
Eu testei a nova versão do Upgrade Advisor e muitas melhorias foram feitas, incluindo a adição de novas regras de validação.
Para quem está planejando migrar para o SQL Server 2005 o Upgrade Advisor é uma ferramenta indispensável.

Segue o link do Microsoft SQL Server 2005 Upgrade Advisor - CTP June Refresh.

http://www.microsoft.com/downloads/details.aspx?FamilyID=cf28daf9-182e-4ac2-8e88-f2e936558bf2&DisplayLang=en

Agradecimentos ao José Ricardo pela "dica".

Posted by Carlos at 06:51 PM | Comments (0)

julho 19, 2005

Pivot

Segue um exemplo de como utilizar a nova função de PIVOT do SQL Server 2005

Crie uma tabela e popule os valores de produto/mes.

use AdventureWorks
go
set nocount on
go
drop table foo
go
create table foo (Produto int, Mes int , Valor money)
go
insert foo values (1,1,20)
insert foo values (1,2,10)
insert foo values (1,3,10)
insert foo values (2,1,200)
insert foo values (2,2,100)
insert foo values (2,3,100)
go

Mostra a tabela produtos e valores mês a mês:

select * from foo

Produto Mes Valor
1 1 20,00
1 2 10,00
1 3 10,00
2 1 200,00
2 2 100,00
2 3 100,00

Utilizando o método atual do SQL Server 2000 para pivotar a tabela com SELECT, CASE e SUM utilizamos o código abaixo:

select Produto,
sum(case Mes when 1 then Valor else 0 end) as Jan,
sum(case Mes when 2 then Valor else 0 end) as Fev,
sum(case Mes when 3 then Valor else 0 end) as Mar
from foo
group by Produto

Temos o resultado abaixo:

Produto Jan Fev Mar
1 20,00 10,00 10,00
2 200,00 100,00 100,00

Com a nova função PIVOT do SQL Server 2005 não precisamos utilizar o SELECT, CASE e SUM. Segue o código do SQL Server 2005 para produzir o mesmo resultado anterior:

select Produto,[1] as Jan, [2] as Fev,[3] as Mar
from
(select Valor,Mes,Produto
from foo) p
PIVOT
(
sum(Valor)
for Mes in ([1],[2],[3])
) as foo

Temos o mesmo resultado:

Produto Jan Fev Mar
1 20,00 10,00 10,00
2 200,00 100,00 100,00

Posted by Carlos at 06:31 PM | Comments (0)

julho 15, 2005

SQL Profiler no SQL Server 2005

Uma das questões mais comuns nos grupos de discussões de SQL Server é a seguinte:
P)Como eu faço para dar acesso ao Profiler para usuários que não são sysadmin?
A resposta mais comum até pouco tempo atrás era a seguinte:
R) Isto não é possível. Somente usuários do grupo sysadmin podem utilizar o profiler.

Desde as primeiras versões do beta do SQL Server 2005 a resposta para a mesma pergunta mudou e ficou assim:
R) Isto não é possível. Somente usuários do grupo sysadmin podem utilizar o profiler. No entanto o SQL Server 2005 permitirá que isso seja feito.
Com o lançamento do SQL Server 2005 batendo na nossa porta já era tempo de vermos se isso é possível e como fazer isso.

É possível delegar a permissão do uso do profiler para um usuário que não é sysadmin do SQL Server 2005. Para isso utiliza-se uma permissão chamada ALTER TRACE.

Como fazer isso? Para permitir um usuário chamado FOO o uso do profiler basta digitar o comando abaixo:

GRANT ALTER TRACE TO [foo];

para remover a permissão basta digitar:

REVOKE ALTER TRACE TO [foo];

Simples assim ;)

Posted by Carlos at 06:35 PM | Comments (1)

Logins no SQL Server 2005

O SQL Server 2005 continua suportando dois tipos de logins: Windows (baseados no Active Directory) e o SQL Server Login (usuário e senha guardados no SQL Server).
Uma das novidades no SQL Server 2005 é a possibilidade de forçar a politíca de senhas do Active Directory também para os SQL Servers Logins.
Outra novidade são os comandos [CREATE,DROP,ALTER] LOGIN que podem(devem) ser utilizados para a manutenção dos logins Windows e SQL.

Teoria a parte, vamos a prática :-)

Para criar um SQL Server Login que obedeça a politíca do AD execute o comando abaixo no SQL Server 2005.

CREATE LOGIN [foo] WITH PASSWORD=N'foobar123'
MUST_CHANGE, DEFAULT_DATABASE=[master],
CHECK_EXPIRATION=ON,
CHECK_POLICY=ON;

Três novas opções chamam a atenção:
MUST_CHANGE: Significa que na primeira conexão com o SQL Server 2005 o usuário precisará trocar a senha. Vale somente para SQL Logins.
CHECK_EXPIRATION: Significa que a expiração de senha segue a política do Windows. Vale somente para SQL Logins e precisa que o SQL Server 2005 esteja instalado no Windows 2003. O valor padrão é ON
CHEK_POLICY: Significa que a política de senhas (complexidade) segue a política do Windows. Vale somente para SQL Logins e precisa que o SQL Server 2005 esteja instalado no Windows 2003. O valor padrão é ON.

Caso você queira usar o modo antigo, sem os controles de senha (não recomendável) basta alterar os valores de ON para OFF.

Uma outra novidade é a possibilidade de colocar um Login em DISABLE. O login continua a existir com todas as suas propriedades mas nenhuma autenticação é possível com ele.

ALTER LOGIN foo disable;

para ativiar

ALTER LOGIN foo enable;


Posted by Carlos at 04:24 PM | Comments (0)

junho 13, 2005

Palestra Alta Disponibilidade em PDF

Converti a minha palestra de Alta Disponibilidade com SQL Server 2000 para PDF para facilitar o download e a visualização. Clique no link abaixo para fazer o download.
AltaDisponibilidade_SQLMagazineTechDay2005.pdf

Posted by Carlos at 08:21 PM | Comments (0)

junho 10, 2005

Conheça quem faz o SQL Server 2005

Confira o web site com vídeos da equipe que faz o SQL Server 2005. Os vídeos foram filmados durante o Microsoft TechEd 2005. Muito legal para você conhecer os rostos das pessoas por traz do produto.

The SQL Server Dev Team @ Tech Ed 2005

Posted by Carlos at 06:58 PM | Comments (0)

junho 09, 2005

Novo site do SQL Server no Technet

O site do SQL Server no TechNet está de cara nova. Ficou bem melhor e agora é possível assinar os KB do SQL Server usando RSS.

Segue o link:
http://www.microsoft.com/technet/prodtechnol/sql/default.mspx

Posted by Carlos at 09:42 PM | Comments (0)

junho 07, 2005

Data do lançamento do SQL2005

Antecipo em primeira mão que o SQL Server 2005, o Visual Studio 2005 e o BizTalk Server 2006 serão lançados na semana de 07 de Novembro de 2005.
O anúncio foi feito pelo Paul Flessner, Senior Vice President da Microsoft, durante o Microsoft TechEd2005 esta manhã.


Posted by Carlos at 11:51 AM | Comments (0)

junho 06, 2005

Gerando script da replicação

Combinar VBScript e SQLDMO provou-se uma solução rápida e de fácil interpretação para a automatização de tarefas no SQL Server.
Abaixo está o código (comentado) de um VBScript para automatizar o processo de geração de scripts T-SQL de criação e configuração da Replicação do SQL Server. Este script pode ser usado para automatizar o processo de backup da replicação ou para servir como fonte de informação para casos de re-criação da replicação.

-----------------------------------------------
'RPL.VBS - Script para gerar os T-SQL de criacao de replicacao
'Este script faz a mesma funcao de quando se acessa o Enterprise Manager,
'clicando em Replication, Publications, botao direito Generate SQL Script.
'Pode ser utilizado automatizar este processo.
'Este arquivo pode ser executado numa janela CMD da seguinte forma:
'c:\cscript rpl.VBS

Dim objDMO
Dim objReplication
Dim objReplicationDatabase
Dim ObjTransactionalPublication
Dim fso
Dim ts

'Seta os valores numericos das propriedades do metodo script.
'O metodo script recebe as propriedades sempre em valor numerico,
'mas fica mais facil utilizar o nome
'da propriedade por clareza de programacao
'Leia no Books On Line no topico
'Script Method (Replication Objects) sobre outros parametros.
Const SQLDMORepScript_PublicationCreation=65536
Const SQLDMORepScript_InstallReplication=1048576
Const SQLDMORepScript_InstallPublisher=1024

'Cria um arquivo texto que vai receber os comandos T-SQL da replicacao.
set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.CreateTextFile("C:\temp\teste.txt",True)

'Cria o objeto SQLDMO da replicacao e conecta no servidor de banco de dados
Set objDMO = CreateObject("SQLDMO.SQLServer")
objDMO.LoginSecure = True
'Substituir a string FOOBAR pelo nome do servidor
objDMO.Connect "FOOBAR"

'Gera o script de instalacao do Publisher e da instalacao da Replicacao.
'Perceba que o metodo Script recebe como parametro
'as constantes definidas no inicio do script.
'O mesmo comando poderia ser escrito
'ObjReplication.Script(1048576 or 1024)
Set objReplication = objDMO.Replication
ts.write ObjReplication.Script(SQLDMORepScript_InstallPublisher or SQLDMORepScript_InstallReplication)

'Para cada banco de dados que possui replicacao,
'gera o comando T-SQL de criacao da publicacao e dos artigos
For Each ObjReplicationDatabase in ObjReplication.ReplicationDatabases
For Each ObjTransactionalPublication in objReplicationDatabase.TransPublications
ts.write objTransactionalPublication.Script(SQLDMORepScript_PublicationCreation)
Next
Next

ts.Close
-----------------------------------------------

Posted by Carlos at 11:25 AM | Comments (0)

junho 03, 2005

Eu ainda estou aqui

Estive "enrolado" nas últimas semanas, por isso vou fazer um breve resumo a antecipar algumas novidades.

A pedidos da SQLMagazine quebrei o artigo de SQL 2000 cluster em duas parters. A primeira parte será teórica explicando como funciona um cluster e como funciona o SQL 2000 FailOver Clustering. A segunda parte será prática explicando como implementar um SQL 2000 Cluster utilizando o Virtual Server.
Aguardem.

Nas últimas duas semanas fiz o primeiro teste de migração do SQL2000 para o SQL2005. O CTP de Junho do SQL2005 inclui uma ferramenta chamada Upgrade Advisor que verifica se a sua instalação do SQL2000 e os seus bancos de dados do SQL2000 são compatíveis com a migração. A ferramenta funcionou bem e o help dela traz todos os itens que precisam ser verificados durante uma migração. Mais sobre o Upgrade Advisor em breve.

Um fato. Se você pretende rodar o SQL Server 2005 no Windows 2003 será necessário aplicar o SP1 do Windows 2003.

Sucesso e até a próxima.

Posted by Carlos at 10:46 AM | Comments (0)

maio 10, 2005

UFA!

Terminei um artigo para a SQLMagazine chamado "Instalando SQL Server 2000 Cluster com Virtual Server 2005".
Agora é esperar o editor aprovar, revisar e quem sabe publicar!

Posted by Carlos at 09:30 PM | Comments (0)

maio 09, 2005

Imersão

Estarei a semana toda na Microsoft fazendo o curso "Microsoft SQL Server 2005 Database InfraStructure & Scalability".
O "figura" que escreveu o material possui um blog que vale a pena ser visitado.

Posted by Carlos at 11:03 PM | Comments (0)

maio 07, 2005

SQL2005 CTP Abril

Já está firme e forte rodando no meu notebook!

sql2005.JPG

Posted by Carlos at 06:40 PM | Comments (0)

maio 06, 2005

SQL Service Pack4

O Microsoft SQL Service Pack 4 está oficialmente disponível para download.

http://www.microsoft.com/sql/downloads/2000/sp4.asp

Posted by Carlos at 02:47 PM | Comments (0)

abril 21, 2005

Microsoft Windows Server System Trial Software

Para montar um ambiente de testes e treinamento igual ao que eu utilizei na minha palestra do SQLMagazine TechDay você não precisa adquirir nenhuma licença de software muito menos comprar alguns CDs por R$10,00.
A Microsoft disponibiliza um site de onde é possível baixar todos os Server System em modo Trial incluindo o Windows 2003, SQL Server 2000 e Virtual Server 2005.
Boa diversão.

Posted by Carlos at 07:13 PM | Comments (0)

abril 19, 2005

CTP de Abril

O Paul Flessner, Senior Vice President da divisão Server Applications na Microsoft anunciou num press release ontem algumas novidades sobre o SQL Server 2005.

Alguns pontos que chamaram a atenção no press release:

1) Não haverá beta 3 e sim contínuos CTP (Community Technology Preview).
2) O CTP de abril está completo e liberado para download no betaplace. A Microsoft recomenda que os testes de compatibilidade e migração sejam iniciados com este CTP.
3) Alguns estudos de caso já estão publicados sobre empresas que estarão migrando para o SQL Server 2005 ainda na fase beta. Koehler Paper, MetaLife, e Summit Partners são algumas delas.
4) Foram abertas incrições para o Technology Adoption Program (TAP). Se você está interessado complete o formulário de inscrição.

Posted by Carlos at 12:21 PM | Comments (0)

abril 17, 2005

SQLMagazine TechDay - Conteúdo Palestra

Esta disponível no endereço abaixo o conteúdo do minha palestra "Alta Disponibilidade com SQL Server 2000" apresentada no SQLMagazine TechDay.

Para fazer o download copie o link abaixo no seu browser e efetue o download.
AltaDisponibilidade_SQLMagazineTechDay2005.pdf
Para os que quiserem somente os links das referências:

High Availability Resources http://www.microsoft.com/sql/techinfo/administration/2000/availability.asp
SQL Server Clustering and Log Shipping Articles
http://www.sql-server-performance.com/articles_clustering_log_shipping.asp
Disaster recovery options for Microsoft SQL Server
http://support.microsoft.com/default.aspx?scid=kb;en-us;822400&Product=sql2k

Posted by Carlos at 07:23 PM | Comments (0)

março 21, 2005

Palestra no SQL Magazine Tech Day

O que é alta disponibilidade? Como escolher e implementar uma solução de alta disponibilidade utilizando o SQL Server 2000? Venha conhecer as tecnologias de alta disponibilidade do SQL Server 2000; Cluster, Log Shipping, Replicação e backup on-line. Cada tecnologia oferece diferentes funcionalidades e atendem necessidades distintas.

Todos esses assuntos serão abordados na minha palestra "Implementando Alta Disponibilidade no Microsoft SQL Server 2000" no próximo dia 16 de Abril no evento SQL Magazine Tech Day.

Veja os detalhes da palestra, horários, locais e inscrições no site abaixo:

http://www.sqlmagazine.com.br/td/


Posted by Carlos at 11:22 PM | Comments (0)

março 03, 2005

Diversão garantida ou o seu dinheiro de volta

Ladies and Gentlemen,
From: Betamail@microsoft.com
Sent: quinta-feira, 3 de março de 2005 11:20
Subject: New Developments for SQL Server 2005

Ladies and Gentlemen,

Today, Microsoft released the third Community Technical Preview (CTP) for SQL Server 2005. The latest CTP includes a number of new features ...
...
...
...

The SQL Server 2005 CTP is now available to all MSDN and Betaplace subscribers.

Thank you,

The SQL Server Development Team.

Posted by Carlos at 11:58 AM | Comments (0)

fevereiro 23, 2005

Dupla Custódia

Dupla Custódia de senhas é algo comum em ambientes de produção. A manutenção de dupla custódia de senhas sempre irá envolver ambos os possuidores de suas respectivas metades. Obviamente num caso de troca de senhas o possuidor da metade esquerda não pode tomar conhecimento do conteúdo da metade direita e vice-versa.

Hoje tive que enfrentar um problema interessante: Como trocar uma senha de dupla custódia se a aplicação somente executa a troca de senha numa janela CMD?
Este problema aconteceu para a troca de senhas do usuário do Reporting Services. O Reporting Services possui o utilitário rsconfig para a manutenção do usuário e senha do serviço do Reporting Services. O rsconfig deve ser executado numa janela CMD que em caso de senha de dupla custódia permitiria a plena visualização da senha.

Como solução fiz um Wscript para a troca de senha onde é possível digitar cada metade da senha sem ninguem tomar conhecimento da metade do outro.

Segue o código do Wscript para os interessados:

'Script para fazer a troca de usuário e senha do Reporting Services caso
'a senha esteja em dupla custódia
'Criado por: Carlos Eduardo Selonke de Souza
'http://carlos.geekbunker.org

Wscript.StdOut.Write "Digite 1 para Teste e 2 para Executar o comando: "
strTest = Wscript.StdIn.ReadLine

If strTest <> 1 and strTest <> 2 Then
wscript.Echo "VocÊ digitou uma opção inválida: " &strTest
Wscript.Quit

End If

WSCRIPT.ECHO vbcrlf

Wscript.StdOut.Write "Digite o nome do servidor do Reporting Services: "
strServer = Wscript.StdIn.ReadLine
WSCRIPT.ECHO vbcrlf

Wscript.StdOut.Write "Digite o nome do banco de dados do Reporting Services: "
strDatabase = Wscript.StdIn.ReadLine
WSCRIPT.ECHO vbcrlf

Wscript.StdOut.Write "Digite o nome do usuário Windows: "
strUser = Wscript.StdIn.ReadLine
WSCRIPT.ECHO vbcrlf

Set objPasswordLeft = CreateObject("ScriptPW.Password")
WScript.StdOut.Write "Digite a senha da Esquerda:"
strPasswordLeft = objPasswordLeft.GetPassword()
WSCRIPT.ECHO vbcrlf

Set objPasswordRight = CreateObject("ScriptPW.Password")
WScript.StdOut.Write "Digite a senha da Direita:"
strPasswordRight = objPasswordRight.GetPassword()
WSCRIPT.ECHO vbcrlf


cmd = "rsconfig -c -s " & strServer & " -d " & strDatabase & " -a windows -u " &strUser &" -p " & strPasswordLeft&strPasswordRight

If strTest = "1" Then
WSCRIPT.ECHO vbcrlf
Wscript.Echo
Wscript.Echo "Senha da Esquerda : " & strPasswordLeft
Wscript.Echo "Senha da Direita : " & strPasswordRight
Wscript.Echo "Senha Completa : " & strPasswordLeft&strPasswordRight
WSCRIPT.ECHO vbcrlf
Wscript.Echo "Comando que será executado:"
Wscript.Echo cmd
Wscript.Quit
End If

If strTest = "2" Then
set oshell = CreateObject("wscript.shell")
oShell.Run("%comspec% /c " &cmd), 0, True
Wscript.Quit
End If

'Fim do Script

Posted by Carlos at 04:28 PM | Comments (1)

fevereiro 18, 2005

Trusted Delegation entre SQL Servers

A configuração do Trusted Delegation nos SQL Servers permite que os servidores SQL Servers "passem" o ticket de autenticação de uma conta de Domínio.
A configuração do Trusted Delegation também é uma solução para os erros "Cannot Generate SSPI Context".
Uma das maiores vantagens de configurar o Trusted Delegation entre os SQL Servers é a possibilidade de utilizar contas de Domínio em Linked Servers.

Para configurar um servidor SQL Server para utilizar o Trusted Delegation você deve seguir os passos abaixo:

1) O serviço do SQL Server deve ser executado com uma conta do Domínio. Leio o link How to change service accounts on a SQL virtual server

2) Configurar no Active Directory a conta utilizada para a execução do serviço do SQL Server com as opções:
a. Account is sensitive and cannot be delegated - não deve estar selecionada.
b. Account is trusted for delegation - deve estar selecionada.

3) Configurar no Active Directory a propriedade do computador que executa o serviço do SQL Server.
a. Computer is trusted for delegation - deve estar selecionado.

4) Executar o comando setspn.exe no servidor Controlador de Domínio. O comando setspn.exe pode ser obtido no link http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/setspn-o.asp
Execute o comando setspn.exe colocando o nome do servidor completo (FQDN) e a conta que executa o serviço do SQL Server.

setspn -A MSSQLSvc/ SERVIDOR.DOMINIO.COM.BR:1433 DOMINIO\Conta_Executa_SQL

Pronto! O SQL Server está configurado para "passar" o ticket de autenticação de contas de Domínio.

Informações detalhadas e explicações técnicas podem ser encontradas nos links abaixo:

1) Como solucionar a mensagem de erro "Não é possível gerar contexto SSPI"

2) Security Account Delegation


Posted by Carlos at 05:41 PM | Comments (14)

fevereiro 10, 2005

SQL 2000 em Cluster com SP4

Meu SQL 2000 SP4 Beta em Cluster já está rodando. Devo iniciar os testes com o SP4 Beta na semana que vem.

SQL2000_SP4.jpg

Atenção na imagem para o @@version do SQL ;)

Posted by Carlos at 11:47 PM | Comments (0)

Virtual Server e Cluster

Consegui instalar o Virtual Server 2005 e criar um Cluster do Windows 2003.

cluster1.JPG

Vou salvar as Virtual Machines para poder usar este cluster nos testes do SQL SP4 Beta e no SQL 2005 Beta 2.
Eu me basei na documentação do link abaixo para instalar e configurar um cluster com dois nós no Virtual Server 2005.
Using Microsoft Virtual Server 2005 to Create and Configure a Two-Node Microsoft Windows Server 2003 Cluster
Se o tempo permitir pretendo fazer um documento em portugues explicando como criar o cluster e instalar o SQL 2000 em cluster.

Posted by Carlos at 07:59 PM | Comments (0)

janeiro 31, 2005

SQL 2005 Blogs

Semana passada estive na Microsoft do Brasil num treinamento de SQL 2005. O treinamento chama-se SQL Server 2005 for Business Intelligence Development.
O curso abordou DTS (que agora chama-se SSIS), Analysis Services, Reporting Services e MDX.
Para quem quiser acompanhar as últimas novidades em SQL 2005, recomendo alem do site da Microsoft, os três sites abaixo.

http://www.scalabilityexperts.com/blog/
http://staff.develop.com/bobb/weblog/
http://sqljunkies.com/WebLog/hitachiconsulting/

Posted by Carlos at 03:43 PM | Comments (0)

julho 26, 2004

SQL2005 Beta2

A Microsoft liberou hoje o SQL2005 Beta 2. Os assinantes MSDN já podem baixar o SQL2005 Beta 2 no site de dowloads do MSDN.

Alguns sites que publicaram a notícia
E-Week
SQL Magazine

Posted by Carlos at 07:58 PM | Comments (1)

julho 14, 2004

TheSpoke.net

Acabei de me cadastrar no TheSpoke.net. Se você também é um Geek the plantão apareça por lá!.


O que é theSpoke?
theSpoke é um clube digital de estilo de vida para estudantes do mundo inteiro, onde filmes, músicas, jogos, esportes e cultura se misturam à tecnologia. É o seu lugar na web para discutir, debater, aprender e causar impacto. Se, para você, é impossível falar sobre a vida sem mencionar a tecnologia, então o theSpoke foi feito de encomenda para você.

Posted by Carlos at 10:12 PM | Comments (0)

janeiro 29, 2004

Webcast sobre Yukon

Um ótimo WebCast sobre Yukon, CLR e integração com o .Net.

Yukon On-Demand Webcast Available
http://blogs.msdn.com/tims/archive/2004/01/29/64387.aspx

Posted by Carlos at 06:20 PM | Comments (0)

janeiro 23, 2004

Recovery Models

Uma vez eu fiz um breve resumo de como os recovery models do SQL Server funcionam e suas implicações no arquivo de transaction log. Este resumo foi utilizado como resposta numa dúvida na lista de discussão de SQL Server MSSQL-L.
De tempos em tempos a mesma dúvida surge e para economizar tempo e facilitar a leitura resolvei transformar a resposta num post do blog.

Você tem duas opções com relação ao Arquivo de Transação (Transaction
Log)

1) Utilizar o banco em Recovery Model Simple (truncate log on
checkpoint). Deste modo o arquivo de transação é "reciclado" de tempos
em tempos e você não precisa limpa-lo.
Utilize este modo quando você pode conviver com o último full backup.

2) Utilize o banco em recovery model full ou bulk/insert. Nestes modos
você precisa executar o comando BACKUP LOG a cada X tempos para que o
arquivo de log seja limpo. O SQL faz duas operações importantes no
BACKUP LOG: ele copia os dados do arquivo de transação para um arquivo
de backup e "limpa" o arquivo de backup, liberando espaço para novas
transações. Utilize o modo full quando você precisa utilizar point in
time recovery. Utilize o Bulk/insert quando você pode conviver como
backup do último transaction log.

O comando BACKUP LOG somente pode ser executado em bancos de dados que
estejam com o recovery model em full ou bulk/insert.

O comando BACKUP DATABASE NÃO limpa o arquivo de transaction LOG. Você
deve utilizar o comando BACKUP LOG para limpar o arquivo de transaction
log.

Mais um ponto:
Muitos usam o termo LIMPAR o Transaction log. Este não é um termo
correto e não representa corretamente o procedimento do transaction log.
Explico melhor: o arquivo de LOG (transaction log) é dividido internamente em Virtual Log Files. Imagine então que o transaction log possui 100 VLFs. Uma transação típica com o banco em modo full ocorreria da seguinte forma:

1) a transação ocupa os VLF 1 até 10 durante a sua execução.
2) O SQL executa um processo chamado checkpoint e verefica se as
transações que estão no arquivo de log ja estão também escritas no
arquivo de dados. Se as transações estiverem em ambos os arquivos o SQL
marca os VLFs da transação como candidados a serem liberados. Neste caso
os VLFs 1 a 10 são marcados como candidatos a serem liberados.
3) uma nova transação ocorre e ocupa os VLF de 11 a 90. Ela ocupa estes
VLFs porque os VLFs 1 a 10 não estão liberados, somente marcados como
candidatos a serem liberados.
4) um backup log ocorre e SQL Server copia as VLF 1 a 10 (transações que estão no log que ja sofreram um checkpoint) para um arquivo
de backup. Os VLFs que pertencerem as transações que estiveram marcadas
como candidatas a liberadas (ja estão "comitadas") são marcados como
livres para uso. No nosso caso as transações 1 a 10. As transações 11 a 90 ainda não sofreram o processo de checkpoint por isso ficam no arquivo de transaction log.
5) Uma nova transação ocorre e precisa de 20 VLF, esta transação então
ocupa os VLFs 90 a 100 e os VLFs 1 a 10. Ela ocupou 10 VLFs que estavam
livre e mais 10 VLFs que estam marcados como livres.

O que aconteceria se o backup log não tivesse ocorrido?
a) Se o arquivo de log pudesse crescer fisicamente ele iria
crescer fisicamente
b) Se o arquivo de log não pudesse crescer ele daria um erro de
LOG FULL


No caso de um banco em modo simple ocorre o seguinte:

1) a transação ocupa os VLF 1 até 10 durante a sua execução.
2) O SQL executa um processo chamado checkpoint e verefica se as
transações que estão no arquivo de log ja estão também escritas no
arquivo de dados. Se as transações estiverem em ambos os arquivos o SQL
marca os VLFs da transação como livres. Neste caso os VLFs 1 a 10 são
marcados como livres.
3) uma nova transação ocorre e ocupa os VLFs 11 a 90.
4) Uma nova transação ocorre e precisa de 20 VLFs. O transaction possui
disponível 10 VLFs (91 a 100) e mais 10 VLFs (1 a 10 marcados como
livres).
5) O SQL então utiliza os 10Vls (91 a 100) e "recicla" os VLs 1 a 10 para serem utilizados pela transação.

A diferença entre os recovery models está no último passo, pois no banco full o backup log "guardou" a transação que ocupou os 10Vls no arquivo de backup. No modo simple o SQL "perdeu" estas transações pois o espaço foi reciclado.

É por isso que recomenda-se que bancos de produção utilizem modo full que permite voltar o banco de dados a qualquer momento.
Para ambientes de desenvolvimento ou que podem conviver com backup full recomenda-se a utilização do modo simple.

Algumas referências:

INF: Shrinking the Transaction Log in SQL Server 2000 with
DBCC SHRINKFILE

Truncating the Transaction Log no Books On Line

Posted by Carlos at 07:06 PM | Comments (1)

janeiro 08, 2004

Limpando Bases

Administrar servidores de desenvolvimento é um trabalho que consome tempo e paciência. Nenhum DBA, nem os Juniors, gostam de administrar o servidor de desenvolvimento.
Um dos problemas enfrentados na administração de servidores de desenvolvimento é o uso do espaço em disco. Bases de produção tendem a possuir mais espaço do que precisam, para evitar I/O em momentos de carga ou crescimento. Servidores de desenvolvimento em geral não possuem espaço em disco abundante o que gera uma restrição a ser administrada pelo DBA.

O script abaixo foi criado para resolver o meu problema com administração de espaço em servidores de desenvolvimento. O script executa em todas as User Databases os seguintes passos:
1) Coloca o banco em modo Simple
2) Trunca o log
3) Deixa o banco com 10% de espaço disponível
4) Atualiza as informações de uso do banco de dados, para evitar que o comando sp_spaceused apresente valores negativos.

Eu coloco este script como um JOB no SQL Server para ser executado todos os dias às 03:00AM. Este script me garante que as bases em desenvolvimento terão somente os espaço que precisam, estarão em modo simple (evitando erros de log full) e com as informações atualizadas.

---Inicio do Script
/*
Script para fazer a manutencao de banco de dados de desenvolvimento.
*/

/*Seta as variaveis */
Set Nocount on
Declare @dbname varchar(100)
declare @mail varchar(500)
declare @name sysname

Declare db Cursor For ---cria um cursor para receber os nomes dos bancos de dados
Select name from master.dbo.sysdatabases
Where name not in ('master','model','msdb','tempdb')

Declare @osql varchar(1000)

/*
Criar um cursor para executar os comandos nos bancos de dados.
*/
Open db
Fetch Next from db into @dbname
While @@Fetch_status=0
Begin
---Coloca o banco em mode simple
set @osql = 'sp_dboption '''+@dbname+''',''trunc. log on chkpt.'',''true'''
---Para executar comente o comando print e tire o comentario do exec
print (@osql)
---exec(@osql)

---Trunca o Log
set @osql = 'backup log '+@dbname+' with no_log'
---Para executar comente o comando print e tire o comentario do exec
print (@osql)
---exec(@osql)

---Deixa o banco com 10% de espaço livre
set @osql = 'dbcc shrinkdatabase ('''+@dbname+''',10)'
---Para executar comente o comando print e tire o comentario do exec
print (@osql)
---exec(@osql)

---Atualiza as informacoes de uso de espacao do banco
---evita que o comando sp_spaceused apresente valores negativos
set @osql = 'dbcc updateusage('''+@dbname+''')'
---Para executar comente o comando print e tire o comentario do exec
print (@osql)
---exec(@osql)

Fetch Next from db into @dbname
End
Close db

Deallocate db

---Fim do Script

Posted by Carlos at 10:30 AM | Comments (2)

dezembro 31, 2003

Backup de todas as bases de dados

Este post inicia uma série de posts que irei fazer sobre backup/restore de banco de dados MS-SQL Server.

Este script faz o backup em sequêncaia de todas as bases de dados de um servidor MS-SQL. Este script pode ser utilizado no QA (para gerar um outro script) ou pode ser agendado via Job ou OSQL+AT.

Os comentários no script explicam o seu funcionamento.

---script para fazer o backup de todas as bases de dados.
---Pode ser utilizado para mandar para Fita ou disco local mediante alteracoes
---criado por Carlos Souza - http://carlos.geekbunker.org
---Alterado em: 30/12/2003

SET QUOTED_IDENTIFIER off
set nocount on
---declara variaveis
declare @dbname varchar(36),@cmd varchar(255),@date char(10),@i int, @j int

---cria uma tabela temporaria para receber os nomes das bases
create table #temp (id int identity, dbname sysname)

---seleciona e formata a data de hoje
select @date = (convert(char(10),getdate(),105))

---insere na tabela temporaria todas as bases de dados
--- menos a tempdb que nao sofre backup
insert into #temp
select db.name from master..sysdatabases db
where db.name != 'tempdb'
order by db.name

---cria um loop para iniciar o backup do banco de dados

select @i = 1
select @j = max(id) from #temp

while @i <= @j
begin
select @dbname = dbname from #temp where @i = id
select @cmd = null
----Gera o comando de backup
----Alterar o caminho do diretorio de backup.
----Também pode-se utilizar caminhos UNC \\servidor\share
select @cmd ='backup database '
+ @dbname
+' to disk = ''c:\mssql2000\backup\'
+@dbname
+'_db_'
+@date
+'.bak'' with init'
---- utilizar a linha abaixo quando quiser
---- gerar um script
---- + char(13) + char(10) + 'go'
select @i = @i +1

---executa o comando de backup

---Comente o select e tire o comentario do exec
select @cmd
---exec (@cmd)
end
---Fim do Loop

drop table #temp

--Fim do Script

Posted by Carlos at 09:52 AM | Comments (2)

dezembro 23, 2003

Avaliação de Final de Ano

Um artigo sério avaliando as ações de segurança da Microsoft.

An In-Depth Look Into Windows Security in 2003

Posted by Carlos at 07:34 AM | Comments (0)

dezembro 22, 2003

Vamos botar para quebrar!

Posted by Carlos at 10:51 AM | Comments (0)

dezembro 17, 2003

Antes tarde do que nunca

O SQL Server recebeu o reconhecimento como uma solução completa de Business Inteligence. O reconhecimento partiu de várias instituições e empresas ligadas ao assunto.

Leia a integra do pess release no link abaixo:
http://www.microsoft.com/presspass/press/2003/dec03/12-17SQLBIHonorsPR.asp

Posted by Carlos at 11:25 AM | Comments (2)

dezembro 16, 2003

Yukon e CLR

Artigo mostrando exemplos de como "poderá ser" a integracão do CLR no SQL Server Yukon.

http://www.developer.com/db/article.php/3289101

Posted by Carlos at 09:00 AM | Comments (1)

dezembro 03, 2003

Tail for Windows

Eu sempre gostei do comando tail no UNIX. Ele é prático, objetivo e eficaz para quem trabalha com arquivos de log.
A plataforma Microsoft por padrão não oferece um comando equivalente e na procura por algo semelhante um amigo me passou o Tail for Win32.
O programa é excelente e tem a vantagem de poder acompanhar vários arquivos ao mesmo tempo.

Posted by Carlos at 07:36 PM | Comments (0)

novembro 20, 2003

O primeiro a gente nunca esquece

O primeiro SQL Server em Cluster a gente nunca esquece!

Posted by Carlos at 09:36 PM | Comments (2)

novembro 18, 2003

Livro novo

Há um livro novo na praça de SQL Server, The Guru's Guide to SQL Server Architecture and Internals. Ainda não está a venda no Brasil mas ja subiu ao primeiro lugar na minha lista de próximas aquisições.

"Ken is one of those people who seek deep knowledge. He isn't satisfied in knowing how to operate something--he needs to know how something operates. In his research for The Guru's Guide to SQL Server Architecture and Internals, Ken learned how SQL Server operates, from the ground up--and that is how he presents it."

Posted by Carlos at 10:44 AM | Comments (0)

julho 25, 2003

Usando scripts para criar ODBCs

Um trabalho chato e tedioso é a criação de ODBCs em máquinas de usuários para aplicações clientes servidor. Hoje deparei com um artigo no site DatabaseJournal que explica como criar ODBCs em várias máquinas utilizando liguagem de script. http://www.databasejournal.com/features/mssql/article.php/2238221.


Estou quase convencido de que dominar a linguagem de script do ambiente da MS vale a pena.

Posted by Carlos at 11:52 AM | Comments (6)

julho 23, 2003

Mais um patch pro MS-SQL

Saiu mais um patch para o SQL Server. Se você usa o SQL Server ou MSDE leia o link abaixo.

http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/MS03-031.asp

Posted by Carlos at 07:31 PM | Comments (6)