XT-INDENT: 0cm">
capaSQL14.JPG


Clique aqui para ler todos os artigos desta edição

 

Gerenciando contas e permissões no SQL Server 2000 – Parte I

Paulo S. Ribeiro

 

Para acessar um database em um servidor MS SQL é necessário ter permissão para logon no servidor e acesso no database. Ao criarmos um usuário no SQL Server, estamos concedendo um login no servidor. Ao definirmos que esse usuário pode ou não ler e/ou escrever nas tabelas de determinado database, estamos definindo as permissões de acesso.

A falta de atenção na definição das permissões para o usuário pode ser desastrosa, afinal de contas não queremos que usuários comuns saiam por aí apagando tabelas, bancos de dados, ou mesmo executando jobs em horários inoportunos. Muitas vezes só nos preocupamos em definir uma política de permissões de acesso depois que um incidente grave aconteceu, mas aí geralmente já é tarde demais.

Nessa edição, estarei apresentando a primeira parte do artigo que trata dos métodos de autenticação, criação de contas, roles e permissões do SQL Server 2000. Para a segunda parte, reservei uma série de exemplos reais para aproximar o leitor do dia-a-dia de um DBA no que diz respeito ao gerenciando de permissões.

Começaremos definindo o método padrão de autenticação durante o processo de instalação do SQL Server 2000.

Escolhendo o método de autenticação durante a instalação do servidor

O termo autenticação define o meio utilizado pelo banco para validar usuários que desejam utilizar seus serviços. Como analogia considere a autenticação como o controle exercido pelo porteiro de um edifício, que permite ou não a entrada de pessoas após sua identificação. No processo de instalação do SQL Server 2000, somos questionados sobre o “método de autenticação”. Existem dois tipos básicos:

Windows Authentication Mode: nesse modelo, também conhecido por Segurança Integrada, o SQL Server 2000 confia na autenticação realizada pelo Sistema Operacional, estabelecendo permissões baseadas nos mesmos usuários e grupos já definidos no servidor de domínio (Windows 2000/2003/XP ou NT 4.0). Quando um usuário tenta efetuar uma conexão trusted (ver figura 1), o SQL Server 2000 irá levantar junto ao Sistema Operacional o SID do usuário e dos grupos a que ele pertence. De posse dessas informações, realizará algumas buscas na tabela de sistema master.dbo.SysXlogins para confirmar a autorização de acesso.

 

Figura 1. Abrindo sessão no Query Analyzer utilizando Segurança Integrada

   image002.gif

Nota

SID ou Security Identification é um código interno gerado pelo Sistema Operacional no momento do cadastramento do usuário no servidor de domínio. O SID gravado na tabela SysXLogins para contas criadas com autenticação no servidor SQL Server 2000 será gerado internamente pelo banco. Para usuários criados com segurança integrada, o SID será o mesmo daquele definido para a conta de logon no servidor de domínio.

 

Mixed Authentication Mode: no modo misto são permitidas autenticações realizadas pelo SQL Server 2000 ou pelo Sistema Operacional. Para que o usuário faça uma conexão autenticada no banco – processo também conhecido como Segurança Standard – é necessário informar o usuário e senha (ver figura 2), que também serão validadas na tabela de sistema master.dbo.SysXLogins.

 

Figura 2. Abrindo sessão no Query Analyzer utilizando a autenticação do SQL Server 2000

image004.gif

 

O acesso a um database em um servidor SQL Server 2000 pode ser dividido em duas fases: na primeira, o usuário deve se conectar no servidor responsável pelo serviço do banco, utilizando o método de Segurança Integrada ou o Standard. Na segunda fase, serão verificadas as permissões de acesso específicas ao database que esse usuário deseja acessar.

Continuando nossa analogia, após passarmos pelo porteiro do edifício, é necessário que sejamos recebidos pela pessoa que reside no apartamento, que “deverá” (em caso de identificação positiva) abrir a porta para que possamos entrar. Considere o edifício como sendo o servidor de banco de dados e o apartamento um database. Assim como passar pelo porteiro em condições normais não dá livre acesso a todos os apartamentos, possuir somente uma conta de logon não é o suficiente para acessarmos todos os databases em um servidor. Veremos a seguir como criar contas de login em um servidor SQL Server 2000.

Criando contas de login no SQL Server 2000

Para criar uma conta de login é necessário informar o método que será utilizado para autenticação. A procedure sp_AddLogin é utilizada para criar uma conta standard;  sp_GrantLogin é empregada para criar uma conta que utilizará segurança integrada.

A Tabela 1 ilustra os comandos T-SQL para criação de dois logins: o primeiro com segurança standard para o usuário UserSQLMag e senha ‘123321’; o segundo com segurança integrada, concedendo autorização de acesso para o usuário PSRibeiro, pertencente ao domínio SQLMag no WinNT . Nas Figuras 3 e 4 podemos visualizar o mesmo processo de criação das contas no Enterprise Manager.

 

Tabela 1. Criação de contas de login utilizando comandos T-SQL

Criando uma conta com segurança standard

Criando uma conta com segurança integrada

exec sp_AddLogin   @loginame=’UserSQLMag’,

                   @password=’123321’

exec sp_GrantLogin ‘SQLMag\PSRibeiro’

 

Figura 3. Criação da conta standard UserSQLMag no Enterprise Manager

 

image006.gif

Figura 4. Criação da conta com segurança integrada para o usuário PSRibeiro, pertencente ao domínio SQLMag

 

image008.gif

 

Uma grande vantagem da segurança integrada está na possibilidade de trabalharmos com grupos: para não criar um login diferente para cada usuário, pode-se optar pela utilização de autorizações de logon coletivas, liberando acesso para grupos já existentes no servidor de domínio WinNT. Para conceder acesso (login) para todos os usuários do grupo G_Vendas no domínio SQLMag, devemos seguir os seguintes passos:

 

... no Query Analyzer

 

exec sp_GrantLogin ‘SQLMag\G_Vendas’

 

... ou no Enterprise Manager em Security ... New Login (ver Figura 5)

 

 

Figura 5. Concedendo permissão de logon no servidor SQL Server 2000 para o grupo WinNT G_Vendas

image010.gif

 

Na Figura 5 podemos observar duas configurações adicionais, disponíveis para os dois modelos de autenticação:

·         Database Default: após efetuar o logon no banco, os usuários são direcionados por padrão para o database ...

Quer ler esse conteúdo completo? Tenha acesso completo