Banco de Dados - SQL Server

Segurança do SQL Server 2000

O SQL Server valida os usuários em dois níveis de segurança: autenticação de login e validação de permissões para contas de usuário e cargos (Roles) do banco de dados.

por Equipe Linha de Código



O SQL Server valida os usuários em dois níveis de segurança: autenticação de login e validação de permissões para contas de usuário e cargos (Roles) do banco de dados.

A autenticação identifica o usuário que está usando uma conta de login e verifica a capacidade do usuário em se conectar ao SQL Server. Se a autenticação for bem-sucedida, o usuário se conectará ao SQL Server.

O usuário deve ter, então, permissão para acessar os banco de dados no servidor. O Administrador do banco de dados atribui permissões específicas a banco de dados para as contas de usuário e os cargos para que os bancos de dados sejam acessados no servidor. As permissões controlam as atividades que o usuário pode executar no banco de dados do SQL Server.

Autenticação de login

O usuário deverá ter uma conta de login para se conectar ao SQL Server. o SQL Server reconhece dois mecanismos de autenticação de login: a autenticação do Windows e a autenticação do SQL Server, sendo que cada um apresenta um tipo diferente de conta de login.

Windows Authentication

Quando você usa o Windows Authentication, uma conta ou um grupo do Windows 2000 controla o acesso dos usuários ao SQL Server. O usuário não fornece uma conta de login ao se conectar ao SQL Server. O Administrador de sistema do SQL Server deve definir a conta ou o grupo do Windows 2000 como uma conta de login válida para o SQL Server.

SQL Server Authentication

Ao usar o SQL Server Authentication, o administrador de sistema do SQL Server define uma conta de login e uma senha para o SQL Server. Os usuários devem fornecer o login e a senha do SQL Server ao se conectarem ao SQL Server.

Modo de autenticação

Quando o SQL Server é executado no Windows 2000, o administrador de sistema poderá especificar que ele seja executado em um dos dois modos de autenticação:

Modo Windows Authenctication - Somente a autenticação do Windows 2000 é permitida. Os usuários não podem especificar uma conta de login do SQL Server.

Modo mixed - Os usuários podem se conectar ao SQL Server com a Windows Authentication ou com a SQL Server Authentication.

Contas de usuário e cargos (roles) do banco de dados

Após serem autenticados pelo Windows 2000 ou pelo SQl Server e autorizados a efetuar login no SQL Server, os usários deverão ter contas em um banco de dados. As contas de usuário e os cargos (roles) identificam um usuário em um banco de dados e controlam a propriedade dos objetos e as permissões para execução de instruções.

Contas de usuário do banco de dados

As contas de usuário que aplicam as permissões de segurança são os usuários ou os grupos do Windows 2000 ou as contas de login do SQL. As contas de usuário são específicas a um banco de dados.

Cargos (Roles)

Os cargos permitem que voce reúna os usuários em uma única unidade à qual podem ser aplicadas permissões. O SQL Server fornece cargos de banco de dados e servidor predefinidos para as funções administrativas comuns, de modo que é possível conceder facilmente várias permissões administrativas a um determinado usuário. Você também pode criar seus próprios cargos de banco de dados definidos pelo usuário. No SQL Server, os usuários podem pertencer a vários cargos.

Tipos de cargos

O SQL Server permite três tipos de cargos para ajudar no gerenciamento das permissões: cargos fixos de servidor, cargos fixos de banco de dados e cargos de banco de dados definidos pelo usuários=.

Cargos fixos de servidor

Os cargos fixos de servidor fornecem grupos de privilégios administrativos no nível do servidor. Eles são gerenciados de modo independente dos banco de dados de usuário no nível de servidor. A tabela a seguir descreve os cargos fixos de servidor no SQL Server 2000.

Tabela 1: Cargos fixos de servidor

Cargo Permissão
Criadores de banco de dados
(dbcreator) Criam e alteram os bancos de dados
Administradores de discos
(diskadmin) Gerenciam os arquivos do disco
Administradores de processos
(processadmin) Gerenciam os processos do SQL Server
Administradores de segurança
(securityadmin) Gerenciam e auditam os logins do servidor
Administradores de servidor
(serveradmin) Configuram as definições do servidor
Administradores de instalação
(setupadmin) Instalam a duplicação
Administradores de sistema
(sysadmin) Executam qualquer atividade
Administradores de operações em massa
(bulkadmin) Executam a instrução BULK INSERT

Cargos fixos de banco de dados

Os cargos fixos de banco de dados fornecem grupos de privilégios administrativos no nível do banco de dados. A tabela a seguir descreve os cargos fixos de banco de dados no SQL Server 2000.

Tabela 2: Cargos fixos de banco de dados

Cargo Permissão
public Mantém todas as permissões padrão dos usuários de um banco de dados
db_owner Executa qualquer atividade de cargo de banco de dados
db_accessadmin Adiciona ou remove usuários, grupos e cargos do banco de dados
db_ddladmin Adiciona, modifica ou elimina objetos do banco de dados
db_securityadmin Atribui permissões de objetos e instruções
db_backupoperator Faz o backup de banco de dados
db_datareader Lê os dados de qualquer tabela
db_datawriter Adiciona, altera ou exclui dados de todas as tabelas
db_denydatareader Naõ pode ler dados de nenhuma tabela
db_denydatawriter Naõ pode alterar dados em nenhuma tabela

Cargos de banco de dados definidos pelo usuário

Você também pode criar seus próprios cargos de banco de dados para representar o trabalho executado por um grupo de funcionários de sua organização. Não é necessário conceder nem revogar as permissões de cada pessoa. Se a função de um cargo for alterada, você poderá alterar facilmente as permissões para o cargo e aplicar as alterações automaticamente a todos os membros desse cargo.

Validação de permissões

Dentro de cada banco de dados, você atribui permissões às contas de usuários e aos cargos para a execução (ou restrição) de certas ações. O SQL Server aceita comandos após o acesso bem-sucedido do usuário a um banco de dados.

O SQL Server executa as seguintes etapas ao validar as permissões:

  1. Quando o usuário executa uma ação, como, por exemplo, quando executa uma instrução Transact-SQL ou escolhe uma opção de menu, o cliente envia as instruções Transact-SQL ao SQL Server.
  2. Quando o SQL Server recebe uma instrução Transact-SQL, ele verifica se o usuário tem permissão para executar uma instrução.
  3. Em seguida, ele executa uma das duas ações a seguir:
    • Se o usuário não tiver as permissões adequadas, o SQL Server retornará um erro.
    • Se o usuário tiver as permissões adequadas, o SQL Server executará a ação.
Equipe Linha de Código

Equipe Linha de Código