O banco de dados MySQL de Segurança

Quando o MySQL é instalado, ele cria automaticamente um banco de dados chamado mysql. Toda a informação utilizada para proteger seus dados são armazenados neste banco de dados, incluindo nomes de conta, nomes de host, senhas e privilégios.

Privilégios são armazenados em colunas. O formato de cada coluna é nome privilégio_priv, no qual privilégio É um privilégio conta específica. Por exemplo, a coluna que continha ALTERAR privilégios é nomeado alter_priv. O valor em cada coluna é privilégio Y ou N, ou seja sim ou não.

Assim, por exemplo, na tabela de utilizador, haveria uma linha para um cliente e para uma coluna alter_priv. Se o campo conta para alter_priv contém Y, a conta pode ser usado para executar um ALTERAR declaração. E se alter_priv contém N, a conta não tem privilégios para executar uma ALTERAR declaração.

o mysql banco de dados contém as seguintes tabelas que armazenam privilégios:

  • do utilizador mesa: Esta tabela armazena privilégios que se aplicam a todos os bancos de dados e tabelas. Ele contém uma linha para cada conta válida que inclui as colunas nome de usuário, hostname, e senha. O servidor MySQL rejeita uma ligação de uma conta que não existe nesta tabela.

  • db mesa: Esta tabela armazena privilégios que se aplicam a um banco de dados particular. Ele contém uma linha para o banco de dados, o que dá privilégios a um nome de conta e um nome de host. A conta deve existir na tabela de usuário para os privilégios a conceder. Privilégios que são dadas na tabela do usuário ignorar privilégios nesta tabela.

    Por exemplo, se o do utilizador tabela tem uma linha para a conta desenhista que dá INSERIR privilégios, desenhista pode inserir em todos os bancos de dados. Se uma linha na db mostra a tabela N para INSERIR para o desenhista na conta PetCatalog banco de dados, o do utilizador mesa sobrepõe-lo, e desenhista pode inserir na PetCatalog banco de dados.

  • anfitrião mesa: Este controlos tabela de acesso a uma base de dados, dependendo do hospedeiro. o anfitrião mesa trabalha com a db mesa. Se uma linha na db tabela tem um campo vazio para o anfitrião, MySQL verifica a tabela host para ver se o db tem uma fila lá. Desta forma, você pode permitir o acesso a um db a partir de alguns anfitriões, mas não de outros.

    Por exemplo, suponha que tem duas bases de dados: db1 e db2. o db1 banco de dados tem informações sensíveis, assim que você quer apenas algumas pessoas para vê-lo. o db2 banco de dados tem informações que deseja que todos vejam. Se você tem uma linha na db mesa para db1 com um espaço em branco anfitrião campo, você pode ter duas linhas para db1 no anfitrião mesa.

    Uma linha pode dar todos os privilégios para usuários que se conectam a partir de um host específico, enquanto que outra linha pode negar privilégios para usuários que se conectam de qualquer outro host.

  • tables_priv mesa: Esta tabela armazena privilégios que se aplicam a tabelas específicas.

  • columns_priv mesa: Esta tabela armazena privilégios que se aplicam a colunas específicas.

Você pode ver e alterar as tabelas em mysql diretamente se você estiver usando uma conta que tenha os privilégios necessários. Você pode usar consultas SQL, tais como SELECIONAR, INSERIR, e ATUALIZAR. Se você estiver acessando o MySQL através de seu empregador, um cliente, ou uma empresa de hospedagem, você provavelmente não tem uma conta com os privilégios necessários.

menu