DB2 - Segurança de Banco de Dados

Este capítulo descreve a segurança do banco de dados.

Introdução

O banco de dados e as funções do DB2 podem ser gerenciados por dois modos diferentes de controles de segurança:

  1. Authentication
  2. Authorization

Autenticação

A autenticação é o processo de confirmação de que um usuário efetua login apenas de acordo com os direitos para realizar as atividades que está autorizado a realizar. A autenticação do usuário pode ser realizada no nível do sistema operacional ou no próprio nível do banco de dados. Ao usar ferramentas de autenticação para biometria, como retina e impressões de figuras estão em uso para manter o banco de dados de hackers ou usuários mal-intencionados.

A segurança do banco de dados pode ser gerenciada de fora do sistema de banco de dados db2. Aqui estão alguns tipos de processo de autenticação de segurança:

  • Com base nas autenticações do sistema operacional.
  • Protocolo de acesso a diretório leve (LDAP)

Para o DB2, o serviço de segurança faz parte do sistema operacional como um produto separado. Para autenticação, são necessárias duas credenciais diferentes, essas são ID de usuário ou nome de usuário e senha.

Autorização

Você pode acessar o banco de dados DB2 e sua funcionalidade no sistema de banco de dados DB2, que é gerenciado pelo gerenciador de banco de dados DB2. A autorização é um processo gerenciado pelo gerenciador de banco de dados DB2. O gerenciador obtém informações sobre o usuário autenticado atual, que indica qual operação do banco de dados o usuário pode executar ou acessar.

Aqui estão as diferentes formas de permissões disponíveis para autorização:

Primary permission: Concede o ID de autorização diretamente.

Secondary permission: Concede aos grupos e funções se o usuário for um membro

Public permission: Concede a todos os usuários publicamente.

Context-sensitive permission: Concede à função de contexto confiável.

A autorização pode ser concedida a usuários com base nas categorias abaixo:

  • Autorização de nível de sistema
  • Administrador do sistema [SYSADM]
  • Controle do sistema [SYSCTRL]
  • Manutenção do sistema [SYSMAINT]
  • Monitor do sistema [SYSMON]

As autoridades fornecem controle sobre a funcionalidade no nível da instância. Autoridade fornece privilégios de grupo, para controlar operações de manutenção e autoridade. Por exemplo, banco de dados e objetos de banco de dados.

  • Autorização em nível de banco de dados
  • Administrador de segurança [SECADM]
  • Administrador de banco de dados [DBADM]
  • Controle de acesso [ACCESSCTRL]
  • Acesso a dados [DATAACCESS]
  • Administrador de SQL. [SQLADM]
  • Administrador de gerenciamento de carga de trabalho [WLMADM]
  • Explique [EXPLIQUE]

As autoridades fornecem controles dentro do banco de dados. Outras autoridades para banco de dados incluem LDAD e CONNECT.

  • Object-Level Authorization: A autorização de nível de objeto envolve a verificação de privilégios quando uma operação é executada em um objeto.
  • Content-based Authorization: O usuário pode ter acesso de leitura e gravação a linhas e colunas individuais em uma tabela específica usando Controle de acesso baseado em rótulo [LBAC].

As tabelas e arquivos de configuração do DB2 são usados ​​para registrar as permissões associadas aos nomes de autorização. Quando um usuário tenta acessar os dados, as permissões registradas verificam as seguintes permissões:

  • Nome de autorização do usuário
  • Qual grupo pertence ao usuário
  • Quais funções são concedidas diretamente ao usuário ou indiretamente a um grupo
  • Permissões adquiridas por meio de um contexto confiável.

Ao trabalhar com as instruções SQL, o modelo de autorização do DB2 considera a combinação das seguintes permissões:

  • Permissões concedidas ao ID de autorização primário associado às instruções SQL.
  • IDs de autorização secundários associados às instruções SQL.
  • Concedido a PUBLIC
  • Concedido à função de contexto confiável.

Autoridades de nível de instância

Vamos discutir algumas autoridades relacionadas a instâncias.

Autoridade de administração do sistema (SYSADM)

É a autoridade administrativa de nível mais alto no nível da instância. Os usuários com autoridade SYSADM podem executar alguns bancos de dados e comandos do gerenciador de banco de dados na instância. Os usuários com autoridade SYSADM podem realizar as seguintes operações:

  • Atualizar um banco de dados
  • Restaurar um banco de dados
  • Atualizar o arquivo de configuração do gerenciador de banco de dados.

Autoridade de controle do sistema (SYSCTRL)

É o nível mais alto em autoridade de controle do sistema. Ele fornece a realização de operações de manutenção e utilitário na instância do gerenciador de banco de dados e seus bancos de dados. Essas operações podem afetar os recursos do sistema, mas não permitem acesso direto aos dados no banco de dados.

Os usuários com autoridade SYSCTRL podem realizar as seguintes ações:

  • Atualizar o banco de dados, o diretório do Node ou do Distributed Connect Service (DCS)
  • Forçar os usuários a sair do nível do sistema
  • Criação ou eliminação de um nível de banco de dados
  • Criar, alterar ou eliminar um espaço de tabela
  • Usando qualquer espaço de mesa
  • Restaurando banco de dados

Autoridade de manutenção do sistema (SYSMAINT)

É um segundo nível de autoridade de controle do sistema. Ele fornece a execução de operações de manutenção e utilitário na instância do gerenciador de banco de dados e seus bancos de dados. Essas operações afetam os recursos do sistema sem permitir acesso direto aos dados no banco de dados. Essa autoridade é projetada para que os usuários mantenham bancos de dados em uma instância do gerenciador de banco de dados que contém dados confidenciais.

Somente usuários com SYSMAINT ou autoridades de sistema de nível superior podem executar as seguintes tarefas:

  • Fazendo backup
  • Restaurando o backup
  • Recuperação rollforward
  • Iniciando ou parando a instância
  • Restaurando tablespaces
  • Executando o comando db2trc
  • Tirar instantâneos do monitor do sistema no caso de um usuário de nível de instância ou de nível de banco de dados.

Um usuário com SYSMAINT pode realizar as seguintes tarefas:

  • Consultar o estado de um espaço de tabela
  • Atualizando arquivos de histórico de registro
  • Reorganização de tabelas
  • Usando RUNSTATS (estatísticas do catálogo de coleção)

Autoridade de monitor do sistema (SYSMON)

Com essa autoridade, o usuário pode monitorar ou obter capturas instantâneas da instância do gerenciador de banco de dados ou de seu banco de dados. A autoridade SYSMON permite que o usuário execute as seguintes tarefas:

  • OBTER INTERRUPTORES DE MONITOR DO GERENTE DE BANCO DE DADOS
  • OBTER INTERRUPTORES DE MONITOR
  • OBTER SNAPSHOT
  • LISTA
    • LISTAR BASES DE DADOS ATIVOS
    • LISTAR APLICATIVOS
    • LISTAR GRUPOS DE PARTIÇÃO DA BASE DE DADOS
    • LISTAR APLICATIVOS DCS
    • LISTAR PACOTES
    • LISTAR TABELAS
    • LIST TABLESPACE CONTAINERS
    • LIST TABLESPACES
    • LISTAR UTITIDADES
  • RESET MONITOR
  • ATUALIZAR INTERRUPTORES DE MONITOR

Autoridades de banco de dados

Cada autoridade de banco de dados contém o ID de autorização para executar alguma ação no banco de dados. Essas autoridades de banco de dados são diferentes dos privilégios. Aqui está a lista de algumas autoridades de banco de dados:

ACCESSCTRL: permite conceder e revogar todos os privilégios de objeto e autoridades de banco de dados.

BINDADD: Permite criar um novo pacote no banco de dados.

CONNECT: Permite conectar ao banco de dados.

CREATETAB: Permite criar novas tabelas no banco de dados.

CREATE_EXTERNAL_ROUTINE: Permite criar um procedimento a ser utilizado pelos aplicativos e pelos usuários dos bancos de dados.

DATAACCESS: Permite acessar os dados armazenados nas tabelas do banco de dados.

DBADM: Atue como administrador de banco de dados. Fornece todas as outras autoridades de banco de dados, exceto ACCESSCTRL, DATAACCESS e SECADM.

EXPLAIN: Permite explicar os planos de consulta sem exigir que eles tenham privilégios para acessar os dados nas tabelas.

IMPLICIT_SCHEMA: Permite que um usuário crie um esquema implicitamente criando um objeto usando uma instrução CREATE.

LOAD: Allows to load data into table.

QUIESCE_CONNECT: Allows to access the database while it is quiesce (temporarily disabled).

SECADM: Allows to act as a security administrator for the database.

SQLADM: Allows to monitor and tune SQL statements.

WLMADM: Allows to act as a workload administrator

Privileges

SETSESSIONUSER

Authorization ID privileges involve actions on authorization IDs. There is only one privilege, called the SETSESSIONUSER privilege. It can be granted to user or a group and it allows to session user to switch identities to any of the authorization IDs on which the privileges are granted. This privilege is granted by user SECADM authority.

Schema privileges

This privileges involve actions on schema in the database. The owner of the schema has all the permissions to manipulate the schema objects like tables, views, indexes, packages, data types, functions, triggers, procedures and aliases. A user, a group, a role, or PUBLIC can be granted any user of the following privileges:

  • CREATEIN: allows to create objects within the schema
  • ALTERIN: allows to modify objects within the schema.

DROPIN

This allows to delete the objects within the schema.

Tablespace privileges

These privileges involve actions on the tablespaces in the database. User can be granted the USE privilege for the tablespaces. The privileges then allow them to create tables within tablespaces. The privilege owner can grant the USE privilege with the command WITH GRANT OPTION on the tablespace when tablespace is created. And SECADM or ACCESSCTRL authorities have the permissions to USE privileges on the tablespace.

Table and view privileges

The user must have CONNECT authority on the database to be able to use table and view privileges. The privileges for tables and views are as given below:

CONTROL

It provides all the privileges for a table or a view including drop and grant, revoke individual table privileges to the user.

ALTER

It allows user to modify a table.

DELETE

It allows the user to delete rows from the table or view.

INDEX

It allows the user to insert a row into table or view. It can also run import utility.

REFERENCES

It allows the users to create and drop a foreign key.

SELECT

It allows the user to retrieve rows from a table or view.

UPDATE

It allows the user to change entries in a table, view.

Package privileges

User must have CONNECT authority to the database. Package is a database object that contains the information of database manager to access data in the most efficient way for a particular application.

CONTROL

It provides the user with privileges of rebinding, dropping or executing packages. A user with this privileges is granted to BIND and EXECUTE privileges.

BIND

It allows the user to bind or rebind that package.

EXECUTE

Allows to execute a package.

Index privileges

This privilege automatically receives CONTROL privilege on the index.

Sequence privileges

Sequence automatically receives the USAGE and ALTER privileges on the sequence.

Routine privileges

It involves the action of routines such as functions, procedures, and methods within a database.