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)