BDII-Mecanismos de Prote§£o

  • View
    218

  • Download
    0

Embed Size (px)

DESCRIPTION

banco de dados

Text of BDII-Mecanismos de Prote§£o

  • Banco de Dados II

    1

  • Mecanismos de Proteo

    2

  • Vamos aprender os principais comandos e aes de mecanismos de proteo. Por exemplo como realizar um backup, restore, etc.

    Conceito:

    3

  • Para realizarmos o backup (dump) dos dados da base, tabela e seus registros, utilizamos o comando mysqldump. Onde este deve ser chamado de fora do MySQL, ou seja, pelo prompt do DOS at o diretrio(pasta) do binrio do MySQL.

    Backup (dump):

    4

  • -No caso do Xampp:

    C:\xampp\mysql\bin

    -No caso do MySQL instalado individualmente:

    C:\Arquivos de Programa\MySQL\mysqlX.X.XX\bin

    Onde X a verso do MySQL de acordo com a sua.

    5

  • -No caso do Xampp:

    C:\xampp\mysql\bin

    -No caso do MySQL instalado individualmente:

    C:\Arquivos de Programa\MySQL\mysqlX.X.XX\bin

    Onde X a verso do MySQL de acordo com a sua.

    6

  • Mysqldump[.exe]

    -u -p -h-port--database - DEPRECATED--databases [base2] [base3]--all-databases

    > Para onde enviar o arquivo de dump junto com seu nome

    Sintaxe:

    7

  • -De uma base de dados:

    mysqldump -uroot -proot --databases BD2 > BD2.sql

    mysqldump -uroot -proot BD2 > BD2.sql

    Exemplos:

    8

  • -De uma base e quais tabelas:

    mysqldump -uroot -proot --database BD2 professor > BD2.sql

    mysqldump -uroot -proot BD2 professor teste > BD2.sql

    9

  • -De vrias bases:

    mysqldump -uroot -proot --databases BD1 BD2 > BD1_BD2.sql

    10

  • Para restaurar o backup (dump) dos dados da base, tabela e seus registros, utilizamos dois comandos:

    - Pelo prompt do DOS

    - De dentro do MySQL

    Restore:

    11

  • Exemplo:

    -Pelo prompt do DOS no mesmo diretrio do mysqldump:

    mysql -uroot proot BD1 < BD1.sql

    12

  • Exemplo:

    - De dentro do MySQL:

    Primeiro selecione a base e depois:

    source ;

    Mysql> source c:\bd2.sql;

    13

  • Vamos realizar agora junto com o professor o passo passo para realizar o backup e restoreutilizando o phpMyAdmin.

    Backup e Restore phpMyAdmin

    14

  • A melhor maneira de recuperar um banco de dados tendo sempre um backup (dump) atualizado do mesmo. Porm, em algumas situaes, podemos no ter esse cenrio por motivos diversos. Sendo assim tem-se a opo de utilizar ferramentas do prprio MySQL para tentar ao mximo resolver algum problema.

    Recuperar banco de dados:

    15

  • Faz manuteno a nvel de tabela da base de dados. Onde pode-se verificar, reparar, otimizar ou analisar.

    Check Table

    16

  • CHECK TABLE tabela [,tabela 2] [QUICK FAST CHANGED MEDIUM EXTENDED];

    - QUICK: No realiza a varredura nas linhas por links incorretos;

    - FAST: Apenas verifica tabelas que no foram fechadas propriamente;

    - CHANGED: Apenas verifica tabelas que foram alteradas desde a ltima verificao ou que no tenham sidos fechadas propriamente;

    - MEDIUM: Verifica linhas com os links deletados so vlidos calculando o checksum para cada linha est correto;

    - EXTENDED: Realiza uma completa verificao em todas as chaves. Com isto verifica se a tabela est 100% consistente porm o processo que leva mais tempo.

    Sintaxe

    17

  • Exemplo

    18

  • 19

  • 20

  • 21

  • Faz a manuteno da base de dados e da tabela conforme os parmetros informados automaticamente. Este comando deve ser executado pelo mesmo diretrio do mysqldumpem um prompt de comando do Windows.

    Mysql Check

    22

  • Mysqlcheck[.exe] [parmetros] [db_name [tbl_name]]

    - --all-databases: Verifica todas as tabelas e em todas as bases de dados;

    - --analyze: Analisa as tabelas;

    - --auto_repair: Se a verificao encontrar erros nas tabelas/base de dados repara automaticamente;

    - --check: Verifica tabelas para encontrar erros;

    - --check-only-changed: O mesmo que --check porm somente naquelas que alteraram.

    Sintaxe

    23

  • - --databases: Verifica todas as tabelas da base de dados informada depois dessa opo;

    - --extended: Analisa as tabelas da base de dados sendo assegura que as mesmas estaro 100% consistentes;

    - --fast: Verifica apenas aquelas que no foram fechadas corretamente;

    - --force: Continua a verificao mesmo se encontrar algum erro inesperado;

    - --medium-check: Igualmente ao --extendedporm garante apenas 99,99%.

    24

  • - --optimize: Otimiza as tabelas elevando a sua performance;

    - --quick: No realiza a varredura nas linhas por links incorretos;

    - --repair: Repara quase que todos os erros econtrados. Mesmo processo do --auto-repair;

    25

  • Exemplo

    26

  • Normalmente ao utilizar o Store Engine InnoDBele mesmo se encarrega de realizar a verificao da consistncia da base de dados e arrum-lo automaticamente. Vamos ver a seguir caso esse processo no funcione, em casos raros, como forar o InnoDB a realizar este processo. Lembrando que nem sempre tem-se a resoluo do problema.

    27

    innodb_force_recovery

  • Passo passo de como proceder:

    1) Pare o servio do MySQL;

    2) Configure, no Windows, o arquivo my.ini incluindo a opo innodb_force_recovery= ao nmero desejado na seo [mysqld].

    Onde nmero:

    0 - Valor padro, ou seja, inicia normalmente sem recovery;

    1 - SRV_FORCE_IGNORE_CORRUPT : O MySQL vai rodar ignorando qualquer erro.

    2 SRV_FORCE_NO_BACKGROUND : Previne que a thread principal do MySQL execute prevenindo que erros maiores aconteam;

    3 SRV_FORCE_NO_TRX_UNDO : No executa transaes de rollback depois do recovery;

    4 SRV_FORCE_NO_IBUF_MERGE : Previne de inserir operaes de merge no buffer do banco de dados. Este valor pode causar danos ao banco de dados;

    5 SRV_FORCE_NO_UNDO_LOG_SCAN : No visualize os logs da base de dados antes de iniciar o banco de dados. Este valor tambm pode corromper a base;

    6 SRV_FORCE_NO_LOG_REDO : No permite que a base de dados faa o roll-forward quando o banco inicializar deixando as pginas do banco em modo obsoleto. Essa opo tambm pode corromper a base.

    28

  • 3) Salve o arquivo my.ini;4) Inicialize o servio do MySQL.

    29

  • Segurana

    30

  • Podemos criar vrios usurios alm do root. Onde cada um deles podem ter mais ou menos privilgios ao acesso ao banco de dados.

    CREATE USER

    31

  • CREATE USER user_specification [, user_specification] ...

    user_specification:user [ identified_option ]

    identified_option: {IDENTIFIED BY 'auth_string'

    | IDENTIFIED BY PASSWORD 'hash_string'}

    32

    Sintaxe

  • CREATE USER fulano@localhost;

    CREATE USER beltrano@localhost IDENTIFIED 123456;

    33

    Exemplo

  • O CREATE USER apenas crie o usurio e define a senha. Posteriormente a criao devemos conceder os privilgios que o mesmo ter ao acessar o banco de dados.

    GRANT ALL PRIVILEGES

    34

  • GRANT ALL PRIVILEGES ON bd2.* TO fulano@localhost;

    GRANT CREATE PRIVILEGES ON bd2.aluno TO fulano@localhost;

    FLUSH PRIVILEGES;

    35

    Exemplo 2

  • GRANT ALL PRIVILEGES ON *.* TO fulano@localhost;

    GRANT CREATE PRIVILEGES ON *.* TO fulano@localhost;

    GRANT DROP PRIVILEGES ON *.* TO fulano@localhost;

    GRANT DELETE PRIVILEGES ON *.* TO fulano@localhost;

    GRANT INSERT PRIVILEGES ON *.* TO fulano@localhost;

    GRANT UPDATE PRIVILEGES ON *.* TO fulano@localhost;

    GRANT SELECT, UPDATE PRIVILEGES ON *.* TO beltrano@localhost;

    FLUSH PRIVILEGES;36

    Exemplo

  • O REVOKE retira algum ou alguns privilgios que o usurio tenha.

    REVOKE PRIVILEGES

    37

  • REVOKE ALL PRIVILEGES ON *.* FROM fulano@localhost;

    REVOKE CREATE PRIVILEGES ON *.* FROM fulano@localhost;

    REVOKE DROP PRIVILEGES ON *.* FROM fulano@localhost;

    REVOKE DELETE PRIVILEGES ON *.* FROM fulano@localhost;

    REVOKE INSERT PRIVILEGES ON *.* FROM fulano@localhost;

    REVOKE UPDATE PRIVILEGES ON *.* FROM fulano@localhost;

    REVOKE SELECT, UPDATE PRIVILEGES ON *.* FROM beltrano@localhost;

    FLUSH PRIVILEGES;38

    Exemplo

  • REVOKE ALL PRIVILEGES ON bd2.* FROM fulano@localhost;

    REVOKE CREATE PRIVILEGES ON bd2.aluno FROM fulano@localhost;

    FLUSH PRIVILEGES;

    39

    Exemplo 2