Segurança de Acesso a Banco de Dados no MS SQL Server



Documentos relacionados
Treinamento sobre SQL

CONFIGURAÇÃO MINIMA EXIGIDA:

3. No painel da direita, dê um clique com o botão direito do mouse em qualquer espaço livre (área em branco).

Noções de. Microsoft SQL Server. Microsoft SQL Server

UNIVERSIDADE FEDERAL DO AMAPÁ NÚCLEO DE TECNOLOGIA DA INFORMAÇÃO. Manual de Avaliação de Desempenho Cadastro

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

Iniciando o MySQL Query Brower

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

MANUAL DE UTILIZAÇÃO

Tutorial USERADM Como inserir conteúdo no Portal Transparência

Lição 1 - Criação de campos calculados em consultas

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

Manual do sistema SMARsa Web

Manual Captura S_Line

Manual das funcionalidades Webmail AASP

Administração de Usuários e Privilégios no Banco de Dados

Manual Administrador - Mídia System

Administração do Windows Server 2003

Obs: É necessário utilizar um computador com sistema operacional Windows 7.

Copie o BDGeral_Vazio.mdf e BDGeral_Vazio.ldf para a pasta ProgamBD, somente se for a 1ª. Vez que instala um módulo no município

Introdução ao Sistema. Características

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

NetEye Guia de Instalação

Manual de Instalação do Agente Citsmart

2. A FERRAMENTA SOLVER (EXCEL)

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

PAINEL GERENCIADOR DE S

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Melhor do que driblar os vírus de pendrive, é não pegá-los! Mas como fazer isto?

BEM VINDO (A) À ACTVS SOFTWARE E APOIO A GESTÃO

Conexão ODBC do MySQL com Excel 2010

PgAdmin. O pgadmin é um software gráfico para administração do SGBD PostgreSQL disponível para Windows e UNIX.

INSTALAÇÃO DO MICROSOFT WINDOWS SHAREPOINT SERVICES 2.0

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

GUIA INTEGRA SERVICES E STATUS MONITOR

Modo Estrutura é o ambiente de definição e estruturação dos campos, tipos de dados, descrição e propriedades do campo.

Instalando o Lazarus e outros sistemas de suporte. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Manual de Instalação e Configuração MySQL

AULA 06 CRIAÇÃO DE USUÁRIOS

Atualização Volare 17 Release 010

Questão Essência do Excel

Manual de operação. BS Ponto Versão 5.1

Manual de configuração do sistema

Instalação e Configuração RPM Remote Print Manager para Windows 2000

ESET Remote Administrator ESET EndPoint Solutions ESET Remote Adminstrator Workgroup Script de Logon

Manual de Instalação e Configuração do SQL Express

Qlik Sense Cloud. Qlik Sense Copyright QlikTech International AB. Todos os direitos reservados.

Conteúdo. 1. Propósito 3 2. Realizar Backup Por PrefDBManager Por SQL Server 7 3. Restaurar Backup 10

Omega Tecnologia Manual Omega Hosting

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

Operações de Caixa. Versão 2.0. Manual destinado à implantadores, técnicos do suporte e usuários finais

Manual SAGe Versão 1.2 (a partir da versão )

MDaemon GroupWare. Versão 1 Manual do Usuário. plugin para o Microsoft Outlook. Trabalhe em Equipe Usando o Outlook e o MDaemon

Procedimentos para Reinstalação do Sisloc

Tutoriais de apoio para a migração do Atualização: 30/04/2014

ÍNDICE 1 INTRODUÇÃO ACESSO ABERTURA DE PROTOCOLO CONSULTA DE PROTOCOLO PROTOCOLO PENDENTE CONFIRMAÇÃO DE RECEBIMENTO.

Guia Site Empresarial

INSTALAR O SQL SERVER NO SERVIDOR. (É o caso da Zervan, que existe o servidor da Fernanda e queremos instalar um outro na máquina de Lilian)

COMO SOLICITAR O CADASTRO DE UM ITEM SSA Central de Cadastro

SISTEMAS OPERACIONAIS LIVRES. Professor Carlos Muniz

CRIANDO UM BANCO DE DADOS

Banco de Dados BrOffice Base

CAPÍTULO 8 Conexões de banco de dados para programadores ASP.NET

GUIA BÁSICO DA SALA VIRTUAL

GERENCIADOR DE CONTEÚDO

ALTERNATIVA PARA CONEXÃO VIA INTERNET DE IP MASCARADO A IP REAL

Instalando e Configurando o DNS Server

Permissão de Usuários

Manual Instalação Pedido Eletrônico

Escaneando seu computador com o Avira AntiVir 10

Resolvendo problemas de conexão de rede wireless no pregão 83/2008

STK (Start Kit DARUMA) Utilizando conversor Serial/Ethernet com Mini-Impressora DR600/DR700.

SISTEMAS OPERACIONAIS LIVRES. Professor Carlos Muniz

Inserindo Dados no Banco de Dados Paradox.

MULTIACERVO - VERSÃO 18.* MANUAL PARA CONVERSÃO DA VERSÃO 17.* PARA 18.*

Tutorial Folha Express. Como otimizar a confecção da folha de pagamento.

Instalação e utilização do Document Distributor

MULTIACERVO - VERSÃO 19.* MANUAL PARA CONVERSÃO DA VERSÃO 18.* PARA 19.*

UNIVERSIDADE TECNOLOGIA FEDERAL DO PARANÁ. Owncloud SERVIÇO DE COMPARTILHAMENTO EM NUVEM. Manual

Veja abaixo um exemplo de como os dados são mostrados quando usamos o

Tutorial Ouvidoria. Acesso, Utilização, Visualização das Manifestações e Resposta ao Manifestante

MySQL: Controle de Acesso

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL

Conexão rápida entre dois computadores em uma plataforma Linux

V.1.0 SIAPAS. Sistema Integrado de Administração ao Plano de Assistência à Saúde. Contas Médicas

Guia de conexão na rede wireless

1. 1. COMO ACESSAR O CURSO

1 Natuur Online Cadastre-se Nome, Login Cadastrar.

Compartilhamento de pasta/arquivos/impressora no Windows XP SP2

ÍNDICE 1. CADASTRO DE BOLSAS... 2

Banco de Dados. Conversão para o Banco de Dados SisMoura

Nova versão: Para School Control e acima, combinado com uso do Windows 7.

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5.

Laboratório de Redes de Computadores e Sistemas Operacionais

MANUAL COTAÇAO WEB MANUAL MANUAL AVANÇO INFORMÁTICA AVANÇO INFORMÁTICA. [Digite seu endereço] [Digite seu telefone] [Digite seu endereço de ]

Transcrição:

Segurança de Acesso a Banco de Dados no MS SQL Server Para efetuar com sucesso os exemplos que serão mostrados a seguir é necessário que exista no SQL Server uma pessoa que se conecte como Administrador, e um ou mais usuários que tenham seus devidos logins de acesso a um determinado banco de dados, que nosso exemplo será o banco de dados Locadora. O MS SQL Server já cria durante a instalação uma conta de administrador com o username sa. A seguir serão apresentados os procedimentos para a criação de um login de acesso a um banco de dados. 1. Abra o Enterprise Manager. 2. Ative o Console Root. 3. Na estrutura de árvore, a esquerda do Console Root, acesse a pasta Security. Dentro desta pasta acesse o item Logins. 4. Clique com o botão direito do mouse sobre o item Logins. Selecione a opção New Login... Surgirá uma caixa de diálogo mostrada pela seguinte figura. Selecionada a guia General conforme a figura, segue uma breve descrição de cada um dos campos a serem preenchidos durante a criação do login: Página 1

Name - deve conter o nome do login que será criado. Para o nosso exemplo, coloque usuario, tudo em letras minúsculas e também sem acento. Authentication - refere-se ao modo como será autenticado este login. Marque a opção SQL Server Authentication e no campo Password coloque usuario novamente Database - deve ser colocado o nome do banco de dados que o usuário deseja que apareça como padrão quando se conectar no sistema. Coloque a opção referente à banco de dados Locadora. Language - deve constar o idioma padrão que o login irá utilizar nas suas conexões para o tratamento de determinadas questões como datas e números. Caso não seja selecionado nenhum idioma, o idioma padrão do Servidor SQL entra em vigor. Selecione a opção Portuguese. 5. Clique na guia Database Access e marque a opção referente ao banco de dados Locadora na lista dos bancos disponíveis no SQL Server. 6. Clique no botão OK. Surgirá no centro da tela uma pequena caixa de diálogo com um campo para confirmação de senha. Confirme a senha digitada e clique novamente no botão OK. Agora você já possui um novo login de acesso ao banco de dados Locadora. Só a título de curiosidade, vamos observar as permissões adquiridas pelo seu usuário no banco Locadora. Veja agora: 1. Na árvore à esquerda do Console Root, através do caminho Databases Locadora Users. Você poderá ver entre os usuários do banco de dados Locadora, o login usuário recém criado. 2. Clique com o botão direito do mouse sobre o usuário recém criado e selecione a opção Propriedades. 3. Clique no botão Permissions. Surgirá a janela apresentada pela figura a seguir: Página 2

Podemos observar por essa janela, que na lista de tabelas, views e stored procedures não é permitido nada e também não é negado nada. Poderíamos somente marcar nesta lista o que seria permitido ao usuário ou não, porém faremos isto através de linhas de comandos no Query Analyser a seguir. Com o Query Analyser aberto, será necessário que você se conecte com o banco primeiramente com a conta de administrador existente (sa), pois para permitir, revogar e negar alguma ação a um usuário é necessário ter autoridade suficiente ou a altura para fazêlo. Depois iremos acessar o menu File, opção Connect... para fazer uma nova conexão com o mesmo banco de dados Locadora, porém agora usando o login de acesso usuario que criamos. Com isso, duas janelas do Query Analyser estarão abertas, uma como administrador para e outra como usuário. Conforme vínhamos dizendo, todo esse controle e segurança no acesso de um determinado usuário a um banco de dados pode-se resumir em apenas três operações básicas: permitir ou conceder, retirar ou revogar, e negar uma ação, respectivamente executados pelas instruções GRANT e REVOKE. Utilizando a conta de Administrador, vamos primeiro conceder ao login usuário o direito de selecionar os dados da tabelas de Clientes do banco Locadora. Execute o comando abaixo: Página 3

grant select on clientes to usuario Podemos traduzir o comando acima da seguinte maneira: permita selecionar os dados na tabela de clientes ao login usuario. O retorno do servidor deve ser The command(s) completed successfully., ou seja, o comando foi executado com sucesso. Vá até a outra janela do Query Analyser onde você se conectou como usuário e tente selecionar os dados da tabela de clientes. Provavelmente você conseguiu selecionar e visualizar os dados da tabelas de clientes com qualquer tipo de comando simples. Todavia, se você tentar selecionar os dados se qualquer outra tabela, por exemplo, como discos, filmes, ou historico não será possível, pois simplesmente o login usuário não tem permissão alguma de acessar os dados destas demais tabelas, mesmo que elas não tenham sido negadas. A mensagem de retorno do servidor para algum acesso não permitido, como selecionar dados da tabelas de filmes, será SELECT permission denied on object 'FILMES', database 'Locadora', owner 'dbo'. Ou seja, permissão negada para o objeto que no caso a tabela filmes no banco de dados Locadora do proprietário (como se fosse o dono, aquele que criou), chamado de dbo (Database Owner). Para que seja possível o login usuario acessar as demais tabelas mostradas, execute o seguinte comando conectado como Administrador: grant select on filmes, discos, historico to usuario Até agora só testamos a permissão do login usuario em tabelas diferentes, mas também é claro que dentro da própria tabela de clientes ele tem suas restrições. Lembre-se que pelo comando SQL que definimos, o login só teria acesso a executar a instrução SELECT, impossibilitando qualquer tentativa de utilização das instruções UPDATE, INSERT ou DELETE. Neste próximo exemplo, vamos permitir que o login usuario também possa executar outras instruções citadas acima em diversas tabelas. Como Administrador, digite: grant insert, update, delete on clientes, filmes, discos to usuario Podemos traduzir o comando acima da seguinte maneira: ao login usuario inserir, atualizar e deletar os dados nas tabelas de clientes, filmes e discos. Se recordarmos a lista de permissões da janela Database User Properties do login usuario, era possível notar que não havia qualquer marcação na lista indicando a permissão para coisa alguma. Porém se considerarmos somente os objetos tabelas desta lista e também as Página 4

instruções que mencionamos nos comandos, agora esta lista terá as marcações semelhantes à tabela seguinte. Objeto SELECT INSERT UPDATE DELETE Clientes Filmes Discos Games Historico Outro ponto a ser observado, é que até o presente momento estamos trabalhando apenas com tabelas, mas as permissões para acesso também se estendem para a criação de procedimentos ou funções, como views e stored procedures mostrados pelo exemplo a seguir: grant create view, create procedure to usuario Interpretando o comando acima: permita ao login usuario a criação de visões (views) e a criação de procedimentos (stored procedures). Além de permitir o acesso a um objeto para um usuário também é possível dar a esse usuário o direito de passar o privilégio concedido a ele para os seus predecessores, ou seja, para outros usuários adiante. Este efeito é conseguido acrescentando with grant option no final de um comando com uma instrução grant qualquer. Veja exemplo seguinte: grant select on filmes to usuario with grant option Com o comando mostrado acima, o login usuario pode agora permitir a outros usuários o direito de selecionar os dados da tabela de filmes, do mesmo modo que lhe foi concedido. Da mesma maneira que o Administrador pôde conceder ao login usuario o acesso aos objetos do banco de dados Locadora, ele também pode revogar todos esses direitos. Os direitos de acesso podem ser revogados no SQL Server através dos comandos que possuírem a instrução revoke. Observe o exemplo a seguir: revoke select, update, insert, delete on clientes from usuario Este comando revoga todo e qualquer direito que o login usuario tinha sobre a tabela de clientes, ou seja, o direito de selecionar os dados, de atualizá-los, inseri-los e excluí-los. Para revogar todos os direitos de uma determinada tabela, causando o mesmo efeito do comando anterior, poderíamos somente ter executado o seguinte código: revoke all on clientes from usuario Página 5

Onde a instrução all pode ser usada para representar todos de um determinado grupo, sejam eles os privilégios a serem concedidos conforme fizemos, sejam os objetos onde os direitos serão aplicados, como as tabelas, ou sejam vários usuários onde queremos aplicar os mesmos privilégios. Para revogar um privilégio grant option no qual o usuário pode conceder os seus direitos aos outros usuários, utilizamos a sintaxe semelhante ao exemplo a seguir: revoke grant option for select on filmes from usuario Neste exemplo é importante notarmos o seguinte: o comando com a instrução revoke que acabamos de usar apenas revogou o direito do usuário de passar seus privilégios adiante, de forma que ele ainda continua a acessar os dados da tabela de filmes livremente. Para remover todos os direitos de usuario perante a tabela de filmes então é executado o seguinte comando: revoke select on filmes from usuario Outro ponto importante a ser observado é que o login usuario passou os seus direitos adiante para outros usuários, muito provavelmente os dois últimos comandos acima de acabamos de ver não serão executados pelo servidor ocasionando a seguinte mensagem de erro To revoke grantable privileges, specify the CASCADE option with REVOKE. Este problema ocorre porque estamos tentando revogar o direito de acesso de um usuário que já concedeu o mesmo direito para outros usuários, causando assim uma espécie de quebra na cadeia de concessões. A mensagem que o servidor envia quando tentamos executar o comando é que para revogar os privilégios concedidos com o grant option, é necessário acrescentar a opção cascade no comando da instrução revoke. O seguinte comando permite que o direito de acesso do usuário na tabela de filmes seja revogado com sucesso, mesmo tendo-o repassado para outros usuários que também terão seus acessos revogados devido à utilização da instrução cascade. Veja: revoke select on filmes from usuario cascade Página 6

Exercícios Crie no MS SQL Server um banco de dados chamado Empresa. Neste banco devem existir as tabelas de Clientes e de Produtos. Insira um considerável número de dados em ambas as tabelas. Agora, crie os seguintes usuários: marcos fernanda joaquim Usando comandos SQL, fixe as seguintes regras de privilégio para os usuários: Marcos deve ter acesso as duas tabelas podendo alterar, inserir e excluir dados. Porém ele terá acesso somente às tabelas, e a nenhum outro objeto existente. Fernanda deve ter acesso somente à tabela de Clientes. Ela poderá alterar e inserir dados na tabela, mas não excluí-los. Joaquim poderá apenas visualizar os dados da tabela de Produtos e Clientes. Marcos concede a Joaquim os direitos de alterar, inserir e excluir dados da tabela de Produtos. Joaquim e Fernanda perdem o direito de acessar e de visualizar os dados a tabela de Clientes. Marcos perde o direito de acessar a tabela de Produtos. Com isso Joaquim também deve perder os mesmos direitos concedidos por Marcos. Página 7