
Neste artigo
Todos os sistemas de gerenciamento de banco de dados relacional fornecem algum tipo de mecanismo de segurança intrínseco projetado para minimizar as ameaças de perda de dados, corrupção de dados ou roubo de dados. Eles variam da simples proteção por senha oferecida pelo Microsoft Access à complexa estrutura de usuário / função suportada por bancos de dados relacionais avançados como Oracle e Microsoft SQL Server. Alguns mecanismos de segurança são comuns a todos os bancos de dados que implementam a Structured Query Language.
Segurança em nível de usuário
Bancos de dados baseados em servidor suportam um do utilizador conceito semelhante ao usado em sistemas operacionais de computador. Se você estiver familiarizado com a hierarquia de usuário / grupo encontrada no Microsoft Windows NT e Windows 2000, verá que os agrupamentos de usuário / função suportados pelo SQL Server e Oracle são semelhantes. Crie contas de usuário de banco de dados individuais para cada pessoa com acesso ao seu banco de dados. Evite provisionar contas genéricas acessíveis por várias pessoas diferentes. Em primeiro lugar, essa prática elimina a responsabilidade individual – se um usuário fizer uma alteração em seu banco de dados (digamos, dando a si mesmo um aumento de $ 5.000), você não poderá rastreá-lo até uma pessoa específica por meio do uso de logs de auditoria. Em segundo lugar, se um usuário específico deixar sua organização e você desejar remover seu acesso do banco de dados, você deve alterar a senha da qual todos os usuários dependem.
Segurança em nível de função
Se você estiver em um ambiente com um pequeno número de usuários, provavelmente descobrirá que criar contas de usuário e atribuir permissões diretamente a eles é suficiente para suas necessidades. No entanto, se você tiver um grande número de usuários, ficará sobrecarregado por manter contas e permissões adequadas. Para aliviar esse fardo, os bancos de dados relacionais oferecem suporte papéis. As funções de banco de dados funcionam de maneira semelhante aos grupos do Windows NT. As contas de usuário são atribuídas a funções e as permissões são atribuídas à função como um todo, em vez de às contas de usuário individuais. Por exemplo, você pode criar uma função de DBA e, em seguida, adicionar as contas de usuário de sua equipe administrativa a essa função. Depois disso, você pode atribuir uma permissão específica a todos os administradores atuais (e futuros) simplesmente atribuindo a permissão à função. Mais uma vez, os procedimentos para criar funções variam de plataforma para plataforma. Os administradores do MS SQL Server devem investigar o sp_addrole procedimento armazenado enquanto os DBAs Oracle devem usar o CRIAR PAPEL sintaxe.
Concessão de permissões
Agora que adicionamos usuários ao nosso banco de dados, é hora de começar a fortalecer a segurança adicionando permissões. Nosso primeiro passo será conceder permissões apropriadas de banco de dados aos nossos usuários. Faremos isso por meio do uso da instrução SQL GRANT. Esta é a sintaxe da instrução: GRANT
type = “código”>
[ON
type=”code”>
TO
type=”code”>
[WITH GRANT OPTION]
type = “code”> Agora, vamos dar uma olhada nesta instrução linha por linha. A primeira linha, CONCEDER , nos permite especificar as permissões de tabela específicas que estamos concedendo. Elas podem ser permissões de nível de tabela (como SELECT, INSERT, UPDATE e DELETE) ou permissões de banco de dados (como CREATE TABLE, ALTER DATABASE e GRANT). Mais de uma permissão pode ser concedida em uma única instrução GRANT, mas as permissões em nível de tabela e permissões em nível de banco de dados não podem ser combinadas em uma única instrução. A segunda linha, SOBRE
Finalmente, a quarta linha, COM OPÇÃO DE GRANT, é opcional. Se esta linha for incluída na instrução, o usuário afetado também tem permissão para conceder essas mesmas permissões a outros usuários. Observe que WITH GRANT OPTION não pode ser especificado quando as permissões são atribuídas a uma função.
Concessões de banco de dados de exemplo
Vejamos alguns exemplos. Em nosso primeiro cenário, contratamos recentemente um grupo de 42 operadores de entrada de dados que adicionarão e manterão os registros dos clientes. Eles devem acessar as informações na tabela Clientes, modificar essas informações e adicionar novos registros à tabela. Eles não devem ser capazes de excluir totalmente um registro do banco de dados. Primeiro, devemos criar contas de usuário para cada operador e, em seguida, adicioná-los a uma nova função, Entrada de dados. Em seguida, devemos usar a seguinte instrução SQL para conceder a eles as permissões apropriadas: GRANT SELECT, INSERT, UPDATE
type = “code”> Clientes ON
type = “code”> TO DataEntry
type = “code”> Agora vamos examinar um caso em que atribuímos permissões no nível do banco de dados. Queremos permitir que membros da função DBA adicionem novas tabelas ao nosso banco de dados. Além disso, queremos que eles possam conceder permissão a outros usuários para fazer o mesmo. Aqui está a instrução SQL: GRANT CREATE TABLE
type = “code”> PARA DBA
type = “code”> COM OPÇÃO DE CONCESSÃO
type = “code”> Observe que incluímos a linha WITH GRANT OPTION para garantir que nossos DBAs possam atribuir essa permissão a outros usuários.
Removendo permissões
O SQL inclui o comando REVOKE para remover as permissões concedidas anteriormente. Esta é a sintaxe: REVOKE [GRANT OPTION FOR]
type = “code”> ON
type = “code”> FROM
type = “code”> Você notará que a sintaxe desse comando é semelhante à do comando GRANT. A única diferença é que WITH GRANT OPTION é especificado na linha de comando REVOKE, e não no final do comando. Como exemplo, vamos imaginar que queremos revogar a permissão concedida anteriormente a Mary para remover registros do banco de dados Clientes. Usaríamos o seguinte comando: REVOKE DELETE
type = “code”> Clientes ON
type = “code”> DE Mary
type = “code”> Há um mecanismo adicional suportado pelo Microsoft SQL Server que vale a pena mencionar – o comando DENY. Este comando pode ser usado para negar explicitamente a um usuário uma permissão que ele poderia ter por meio de uma associação de função atual ou futura. Esta é a sintaxe: DENY
type = “code”> ON
type = “code”> PARA
type = “code”> Mais da Lifewire
-
Linguagem de controle de dados (DCL)
-
Criando rastreamentos com o SQL Server 2012
-
Um guia para criar contas de usuário do SQL Server 2012
-
Como criar usuários e conceder permissões no MySQL
-
Criação de uma conta de banco de dados SQL Server 2008
-
Inicie o SQL Server Agent: configure o SQL Server 2012
-
O que você precisa saber sobre linguagem de consulta estruturada
-
Como criar um rastreamento com o Profiler no SQL Server 2008
-
Como usar o Ubuntu para adicionar um usuário ao Sudoers
-
Escolhendo um modo de autenticação do SQL Server
-
Os fundamentos do SQL
-
Iniciando uma carreira em bancos de dados
-
Determinantes e seu papel em um banco de dados
-
Como criar um servidor da Web LAMP usando o Ubuntu
-
Os 9 melhores livros de SQL de 2021
-
Como alterar temporariamente contas e privilégios
Seus direitos de privacidade
A Lifewire e nossos parceiros terceirizados usam cookies e processam dados pessoais como identificadores exclusivos com base em seu consentimento para armazenar e / ou acessar informações em um dispositivo, exibir anúncios personalizados e para medição de conteúdo, percepção do público e desenvolvimento de produtos. Para alterar ou retirar suas escolhas de consentimento para Lifewire.com, incluindo seu direito de contestar quando um interesse legítimo é usado, clique abaixo. A qualquer momento, você pode atualizar suas configurações por meio do link “Privacidade da UE” na parte inferior de qualquer página. Essas escolhas serão sinalizadas globalmente para nossos parceiros e não afetarão os dados de navegação. Lista de parceiros (fornecedores)
Nós e nossos parceiros processamos dados para:
Digitalize ativamente as características do dispositivo para identificação. Use dados precisos de geolocalização. Armazene e / ou acesse informações em um dispositivo. Selecione o conteúdo personalizado. Crie um perfil de conteúdo personalizado. Avalie o desempenho do anúncio. Selecione anúncios básicos. Crie um perfil de anúncios personalizados. Selecione anúncios personalizados. Aplique pesquisas de mercado para gerar insights do público. Avalie o desempenho do conteúdo. Desenvolva e melhore produtos. Lista de parceiros (fornecedores)