SQL 24 HOP – Palestrarei no SQL PASS 24 horas português

Olá Amigos

No próximo dia 14/11 (segunda-feira) iniciaremos mais um ciclo de palestras com diversos profissionais de SQL Server dos países que falam a língua portuguesa.

A minha sessão será no dia 14/11 as 19:00 (Horário de Brasilia) vou falar de SMB 3.0 como alternativa de storage. Corra, ainda da tempo de fazer a inscrição totalmente gratuíta e online! REGISTRE-SE

Veja a grade de palestras aqui.

 

Anúncios

Token Bloat – Cannot generate SSPI context

Olá amigos, há um tempo atrás enfrentei o famoso problema SSPI atípico e sempre adiava este post, bom finalmente decidi escrever o artigo. Espere que o ajude.

Problema

Um usuário sempre conectou ao SQL Server sem problemas, mas um dia ao tentar conectar-se ao mesmo serviço de SQL ele recebeu a seguinte mensagem:

sspi

Não houve nenhuma mudança por parte de infraestrutura e DBAs no servidor, o usuário simplesmente não consegue conectar mais, e o mais intrigante é que alguns usuários conseguem conectar-se e outros não.

Bom, na grande maioria das vezes o erro SSPI Context é gerado por falta de SPN em uma tentativa de conexão via kerberos com o SQL Server e para resolver este problema basta criar o SPN.

Listando os SPN atuais:

No prompt de comando digite o seguinte comando

SETSPN –L <domínio\conta_de_serviço_do_SQL>

spn

Nota: Se ao executar o comando setspn –L você não receber o SPN para a sua instância de SQL Server, você deve criar o SPN e você está recebendo o erro de SSPI Context, possivelmente o seu problema será resolvido com a criação manual do SPN com o seguinte comando:

SETSPN – A MSSQLSvc/fqdn <domínio>\<conta de serviço do SQL>

SETSPN – A MSSQLSvc/fqdn:1433 <domínio>\<conta de serviço do SQL>

Ex. SETSPN –A MSSLSvc/sqlproducao.contoso.com contoso\sqlServiceAcc

Maiores informações no artigo: https://msdn.microsoft.com/pt-br/library/ms191153.aspx

 

Como podemos observar no resultado do SETSPN –L no meu ambiente eu tenho os SPNs corretamente criados!

O que justifica algumas conexões conseguirem conectar-se, pois o SPN está ok, e então por que algumas conexões recebem o SSPI?

Para responder esta questão precisamos analisar o ticket do kerberos, executando a ferramenta tokensz você poderá evidenciar o problema de token bloat com a seguinte sintaxe

tokensz.exe /compute_tokensize /user:<usuário_com_erro_sspi>

tokensz-1

Como podemos notar na imagem acima, o tamanho máximo do Token é 12000 (12K) e o token do usuário contoso\usuarioSQL que estou tentando conectar-se ao SQL e estou recebendo o erro SSPI contexto ultrapassou o limite.

Um token basicamente contém os grupos e permissões de um usuário e é criado no momento do logon e este token é repassado aos outros serviços/servidores conforme o usuário necessita autenticar-se para consumir os serviços (para maiores detalhes sobre kerberos consulte o artigo https://msdn.microsoft.com/en-us/library/bb742516.aspx)

Pois bem, se em um token temos a ACL (Access control List) vamos investigar os usuários criados:

Os dois usuários são membros do grupo SQLacesso o qual foi criado o login no SQL Server, mas o segundo usuário é membro de mais algumas centenas de grupos.

Até o Windows 2008 R2 o tamanho máximo default de um token é de 12K a partir do Windows 2012 este valor foi alterado para 48K

Dependendo do tamanho de seu ambiente este limite de 12K é facilmente alcançado com um usuário pertencendo a aproximadamente 150 grupos.

Em uma empresa multinacional onde como boa prática são criados diversos grupos para controlar acessos a diversos compartilhamentos, servidores, aplicações etc. este limite é alcançado muito rapidamente.

aninhamento_grupo.png

Qual o tamanho de cada grupo?

Para calcular o tamanho do token utilizamos a seguinte formula:

TokenSize = 1200 + 40d + 8s

Onde:

D = (grupos domínio local + grupos universais externos)

S = (grupos globais + Universal)

Existem diversos scripts que automatizam este cálculo, abaixo um bem simples que encontrei no artigo http://www.cluberti.com/blog/2014/05/26/getting-kerberos-token-size-with-powershell/

# Always credit where due - this was found via
# http://jacob.ludriks.com/getting-kerberos-token-size-with-powershell/
 
#Gets max token size
#Run with .\get_tokensize.ps1 -Username "domain\username"
#Reference: http://support.microsoft.com/kb/327825
#tokensize = 1200 + 40d + 8s
Param(
    [Parameter(Mandatory=$True)]
    [String]$Username
)
$domain = ($username.split("\"))[0]
$user = ($username.split("\"))[1]
Import-Module ActiveDirectory
$rootdse = (Get-ADDomain $domain).distinguishedname
$server = (Get-ADDomain $domain).pdcemulator
$usergroups = Get-ADPrincipalGroupMembership -server $server $user | select distinguishedname,groupcategory,groupscope,name
$domainlocal = [int]@($usergroups | where {$_.groupscope -eq "DomainLocal"}).count
$global = [int]@($usergroups | where {$_.groupscope -eq "Global"}).count
$universaloutside = [int]@($usergroups | where {$_.distinguishedname -notlike "*$rootdse" -and $_.groupscope -eq "Universal"}).count
$universalinside = [int]@($usergroups | where {$_.distinguishedname -like "*$rootdse" -and $_.groupscope -eq "Universal"}).count
$tokensize = 1200 + (40 * ($domainlocal + $universaloutside)) + (8 * ($global + $universalinside))
Write-Host "
Domain local groups: $domainlocal
Global groups: $global
Universal groups outside the domain: $universaloutside
Universal groups inside the domain: $universalinside
Kerberos token size: $tokensize"

Outros scripts úteis

http://www.jhouseconsulting.com/2013/12/20/script-to-create-a-kerberos-token-size-report-1041

https://gallery.technet.microsoft.com/scriptcenter/Check-for-MaxTokenSize-520e51e5

Como Resolver

Você tem duas maneiras de resolver o problema, aumentando o default do token size ou excluindo grupos desnecessários.

Para aumentar o token size, você pode seguir as etapas do KB http://support.microsoft.com/kb/938118

Em cada estação:

  1. Inicie Regedt32.exe
  2. Localize a chave (HKLM\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters)
  3. No menu Edit clique em NEW / DWORD e utilize os parâmetros abaixo:

Nome: MaxTokenSize

tipo: REG_DWORD

Base: Decimal

Valor: 48000

regedit

  1. Feche o Editor de Registro

Se executarmos novamente a ferramenta Tokensz teremos o seguinte resultado:

tokensz-2

 

Leituras adicionais

http://support.microsoft.com/kb/938118

http://blogs.technet.com/b/shanecothran/archive/2010/07/16/maxtokensize-and-kerberos-token-bloat.aspx

http://support.microsoft.com/kb/327825/en-us

http://blogs.technet.com/b/askds/archive/2012/07/27/kerberos-errors-in-network-captures.aspx

http://blogs.technet.com/b/askds/archive/2007/11/02/what-s-in-a-token.aspx

http://support.microsoft.com/kb/327825/en-us

http://blogs.technet.com/b/askds/archive/2012/09/12/maxtokensize-and-windows-8-and-windows-server-2012.aspx

 

 

 

Escalando a montanha – 3º ano como MVP

O frio na barriga ainda continua o mesmo :) de quando recebi o título pela primeira vez em 2014, o dia todo esperando por este e-mail.

mvp16

Gostaria de agradecer a todos da comunidade tecnica a quem dedico esta renovação do título…

Conforme disse no ano passo, estou escalando a minha montanha:), tenho grandes amigos que são MVPs há 10 anos e espero chegar la um dia:), estou no meu 3º ano e espero atingir tantos quantos os meus amigos.

E aqui a foto atualizada de minha montanha que estou escalando…. já se foram 3 anos  … rumo aos 10 anos:)

OBS: Na barrinha de progressão do Windows já foi 30%:)

image1

Obrigado a todos e especial ao programa  MVP e a comunidade tecnica no geral.

2015 Microsoft MVP Virtual Conference

vconf 

Olá amigos!

Gostaria de convidá-los para o grande evento que a Microsoft e os MVPs estão organizando, e que acontecerá nos dias 14 e 15 de maio, a partir das 12h00 (Horário de Brasilia)

Junte-se aos MVPs do Brasil, Estados Unidos e Latam que estarão compartilhando o seu conhecimento em sessões práticas e gratuitas, com cenários do mundo real e últimas novidades sobre Tecnologia Microsoft.

steveO MVP Virtual Conference trará 95 sessões com conteúdo para IT Pros, Developers e Consumer experts, planejadas para ajudá-lo a navegar no momento mobile-first Cloud first. E para abrir o evento, teremos o prazer de receber Steve Guggenheimer, Microsoft VP of Developer Platform.

Por que atender ao MVP V-Conf? A conferência está dividida em 5 trilhas simultâneas:  IT PRO (English), DEV (English), Consumer (English), Sessões em Português e em Espanhol, temos sessões para todas as audiências!

Inscreva-se e garanta a sua vaga!

A conferência será acompanhada pelos nossos canais sociais, e você pode acompanhar em tempo real, seguindo @mvpaward e usando a hashtag #MVPvConf.

Confira a agenda e programe-se:

grade

grade2

A minha sessão será no dia 15/05 as 05:00 PT (21:00 horário de Brasília) e será moderada pelo MVP Nilton Pinheiro (Twitter | Site)

 

SQLSAT361 INNER-Joinville

IMG_6192

Boa tarde galera,

No último sábado tive o prazer de participar para de mais uma edição do SQL Saturday, foi minha  9a. participação como palestrante e foi a edição #361.

O evento ocorreu na Universidade Univille em Joinville, fomos muito bem recebidos e adorei a cidade, certamente voltarei para conhecer melhor a cidade.

O evento foi realmente muito bom, ótimas grades e com palestrantes de diversas cidades do Brasil e teve o lançamento do meu livro (SQL Server 2014: Alta Disp. na Prática com AlwaysOn Failover Cluster Instances) com co-autoria com o Nilton Pinheiro

Falei sobre a versão gratuita do SQL Server o PPT pode ser baixado no site do SQLSat.

Segue o link para download das fotos Download_SAT361

Obrigado a todos pelo ótimo evento e até o próximo SQLSAT que ja tem data e local, será o SQLSAT SP no dia 26/09 faça ja seu registro totalmente gratuito.

Att.
Marcelo Fernandes

 

E-Book – SQL Server: Além do conceito SQL Server Blog Post Collection

Olá Pessoal,

Estou feliz em compartilhar que nesta semana estamos lançando juntamente com mais 14 amigos (Diego Nogare – Edvaldo Castro – Demetrio Silva – Marcel Inowe – Marcos Freccia – Ivan Lima – Fabiano Amorim – Sulamita Dantas – Marcelo Fernandes – Cibelle Castro – Leandro Ribeiro – Luciano Moreira – Nilton Pinheiro – Tiago Balabuch – Felipe Ferreira) o e-book: SQL Server Além do conceito – Blog Post Collection.

Neste projeto juntamos os melhores post de cada autor criando um guia com grandes dicas e macetes para SQL Server.

Este e-book é gratuito e pode e deve ser compartilhado, o intuito deste trabalho é compartilhar conhecimentos e informações, eu contribui com 3 artigos (a partir da página 162)

Espero que gostem, você pode efetuar o download clicando na imagem abaixo:

image

Bons estudos!
Marcelo Fernandes

SQL Server 2014: Alta Disp. na Prática com AlwaysOn Failover Cluster Instances

capa_livro

Olá pessoal… é com grande  prazer que compartilho mas uma realização em minha vida profissional. Após um longo caminho e dedícação de mais de um ano, estamos lançando em co-autoria com meu amigo Nilton Pinheiro(@nilton_pinheiroSite | LinkedIn) o livro “SQL Server 2014: Alta Disponibilidade na Prática com AlwaysOn Failover Cluster Instances“…

Para quem me conhece um pouco sabe que “Alta Disponibilidade” é um tema que gosto muito, mas nunca imaginei que um dia lançaria um livro, realmente é um grande sonho se realizando, foi um trabalho longo  e dedicamos muito tempo e carinho neste projeto.

Tomamos como base a série de videos que o Nilton lançou no TechNet SQL Server Failover Clustering End-to-End, este projeto tomou mais força quando nosso amigo Fábio Gentile  (Facebook | LinkedIn) e Premier Field Engineer (PFE), topou ser o revisor técnico 🙂

Como o próprio nome diz, este será um livro totalmente prático! Quando pensamos no livro, pensamos em fazer um livro que fosse didático, objetivo e prático. Então, dedicado a estudantes, Administradores de Banco de Dados ou Redes e simpatizantes da plataforma de banco de dados Microsoft SQL Server, o livro abordará os principais aspéctos referentes à implementação de um ambiente de alta disponibilidade com SQL Server e orientará quanto à execução de todos os passos para a implementação e configuração de um cluster com dois nós rodando Windows Server 2012 R2 e suportando duas instâncias do SQL Server 2014 em configuração multi-instances.

Para tornar esta abordagem prática possível o livro cobrirá passo-a-passo a criação de um ambiente de laboratório com máquinas virtuais criadas no Hyper-V e abordará a configuração de redes, criação e configuração de discos no Windows e no cluster, quórum e a instalação de duas instâncias do SQL Server 2014 em configuração multi-instances. O objetivo é que ao final do livro você tenha absorvido todo o conhecimento necessário para a implementação de um SQL Server 2014 AlwaysOn Failover Clustering!

Há…e se você não possuir acesso ao Windows Server 2012 R2 ou SQL Server 2014, não se preocupe pois no livro o guiamos para fazer o download das versões de avalição, o que o permitirá usar os produtos por 180 dias.

Então, o que posso dizer é…ao adquirir este livro esteja preparado não apenas para lê-lo, mas principalmente para aprender colocando a mão na massa. Se você busca um livro que seja prático e lhe proporcione a base necessária para a implementação de ambientes de alta disponibilidade com SQL Server 2014, certamente este será o livro que você procura :).

Não tenho dúvidas de que este será um livro único, até porque, no Brasil somos bastante carentes de livros sobre o assunto e estou certo de que ele lhe proporcionará um excelente aprendizado.

Faça um download do  sumário do livro!

O livro já está disponível para compras Online através dos sites das livrarias Cultura e Curitiba!

Em breve estará também em outras livrarias como Saraiva, mas para aqueles que estavam esperando a disponibilização para compras Online, agora já é possível 🙂

Segue abaixo os links para as respectivas livrarias:

Livraria Cultura: http://www.livrariacultura.com.br/p/microsoft-sql-server-2014-42887319

 Livraria Curitiba: http://www.livrariascuritiba.com.br/microsoft-sql-server-2014-erica,product,LV376835,3429.aspx

Um abraço e bons estudos!!
Marcelo Fernandes