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.

 

SQL Saturday SP #570

Olá Amigos,

No dia 08/10/2016 tive o prazer de participar do SQL Saturday #570 SP, tive o prazer de palestrar em todas as edições do SQLSP. E esta edição estava lotada…. Parabéns  Diego Nogare (Site | Twitter) e aos demais organizadores, realmente o evento estava sensacional.

Esta foi a turma de palestrante: (acredito que esta foi a edição com o maior número de palestrantes no Brasil)

img_8008

O tema de minha sessão nesta edição foi “Criando ambientes híbridos de alta disponibilidade (On Premises e Cloud)” e caso queira baixar a apresentação e as demos, fique a vontade, já os disponibilizei no site do SQLSaturday.

Abaixo algumas fotos do evento, caso queira ver as demais fotos e tenha paciência para o download, tem quase 900Mbs de fotos 🙂.

 

Te vejo no próximo SQL Saturday, que ja tem data e local, será o SQL Sat 573 em Brasília no dia 26/11/2016, te vejo lá.

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.

SQLSATSP #424

IMG_6659Olá Amigos….

No sábado dia 26/Setembro ocorreu mais uma edição do SQLSat em São Paulo, tive o prazer de ministrar mais uma sessão para o SQLSat. Nesta edição dividi a sessão com o brother Alex Silva (Twitter ) e falamos de clusterlog. você pode efetuar o download do material apresentado no portal do SQLSaturday

IMG_6376No ppt consta a parte bonus da palestra com o authoritative restore do cluster database, nem todos conhecem o poder que este cara tem e como ele pode salvar o seu emprego 🙂

A casa estava cheia, e foi muito bom rever os amigos e fazer novos amigos, nesta edição tivemos 33 palestrantes com 8 MVPs, 7 PFEs e 1 MCM

realmente foi um evento fantástico, parabéns aos organizadores e a todos que diretamente ou indiretamente colaboraram para o sucesso do evento.

Segue o link para download das fotos do evento.

Bom, nos vemos no próximo SQLSat que ja tem data, será o SQLSatDF em Brasília no dia 21/Novembro.

TechEdBR #EuPalestrei \o/

Olá amigos….

IMG_0983Este final de semana (24 a 25 de Setembro) foi fantástico, tiver o prazer de dividir uma sessão com meu brother Nilton Pinheiro (Twitter | Site) no TechEd, foi minha primeira palestra para o TechEd, ter o seu nome na grade de palestrantes em um dos maiores eventos de tecnologias e ainda na sala “Spartan” são fatos que não ocorrem todos os dias 🙂

Nesta sessão do TechEd falamos de novas tecnologias para aumentar a disponibilidade de seu ambiente com o Windows Failover Cluster, falamos um poouco de iSCSI, SMB 3.0 e CSV, e a casa estava lotada….

CP26-SuW8AA9GyF.jpg large

Passamos alguns finais de semana preparando esta sessão e tivemos ótimos feedbacks, muito obrigado a todos que compareceram ao TechEd.

IMG_0989[1]Este evento foi bem especial pois foi a primeira vez que ministro em um evento onde um outro brother que top master SQL Server Jedi etc e tal também está na grande como palestrante. Fiquei muito feliz ter ter meu nome na grade de palestrante onde o Roberto Cavalcanti (Sr. Support Escalation Engeneer) também participou, sempre que faço uma conexão por Dallas tento visitar por algumas horas o Roberto lá em Las Colinas onde sempre sou muito bem recebido.

Muito obrigado a todos e até próximo TechEd