Vídeo: Curso MySQL #08 - Gerenciando Cópias de Segurança MySQL 2024
Quando o MySQL está instalado, ele cria automaticamente um banco de dados chamado mysql . Todas as informações usadas para proteger seus dados são armazenadas neste banco de dados, incluindo nomes de conta, nomes de host, senhas e privilégios.
Os privilégios são armazenados em colunas. O formato de cada nome de coluna é privilégio _priv, em que privilégio é um privilégio de conta específico. Por exemplo, a coluna contendo privilégios ALTER é chamada alter_priv. O valor em cada coluna de privilégio é Y ou N, significando sim ou não.
Assim, por exemplo, na tabela de usuários, haveria uma linha para uma conta e uma coluna para alter_priv. Se o campo de conta para alter_priv contiver Y, a conta pode ser usada para executar uma instrução ALTER. Se alter_priv contiver N, a conta não tem privilégio para executar uma instrução ALTER.
O banco de dados mysql contém as seguintes tabelas que privilegiam a loja:
-
user tabela: 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 o nome do usuário, o nome do host e a senha da coluna. O servidor MySQL rejeita uma conexão para uma conta que não existe nesta tabela.
-
tabela db : Esta tabela armazena privilégios que se aplicam a um banco de dados específico. Ele contém uma linha para o banco de dados, que oferece privilégios para um nome de conta e um nome de host. A conta deve existir na tabela do usuário para que os privilégios sejam concedidos. Privilégios que são fornecidos nos privilégios de sobreposição de tabela de usuários nesta tabela.
Por exemplo, se a tabela de usuário tiver uma linha para o designer de conta que ofereça privilégios INSERT, o designer pode inserir em todos os bancos de dados. Se uma linha na tabela db mostrar N para INSERT para a conta do designer no banco de dados do PetCatalog, a tabela do usuário a substitui e o designer pode inserir no banco de dados do PetCatalog.
-
tabela host : Esta tabela controla o acesso a um banco de dados, dependendo do host. A tabela host funciona com a tabela db. Se uma linha na tabela db tiver um campo vazio para o host, o MySQL verifica a tabela host para ver se o db tem uma linha lá. Desta forma, você pode permitir o acesso a um db de alguns hosts, mas não de outros.
Por exemplo, suponha que você tenha dois bancos de dados: db1 e db2. O banco de dados db1 possui informações confidenciais, portanto, você deseja que apenas determinadas pessoas vejam. O banco de dados db2 possui informações que você deseja que todos vejam. Se você tiver uma linha na tabela db para db1 com um campo de host em branco, você pode ter duas linhas para db1 na tabela de host.
Uma linha pode dar todos os privilégios aos usuários conectados a partir de um host específico, enquanto outra linha pode negar privilégios aos usuários conectados de qualquer outro host.
-
tables_priv tabela: Esta tabela armazena privilégios que se aplicam a tabelas específicas.
-
columns_priv tabela: Esta tabela armazena privilégios que se aplicam a colunas específicas.
Você pode ver e alterar as tabelas no mysql diretamente se estiver usando uma conta que tenha os privilégios necessários. Você pode usar consultas SQL, como SELECT, INSERT e UPDATE. Se você está acessando o MySQL através de seu empregador, um cliente ou uma empresa de hospedagem na web, você provavelmente não possui uma conta com os privilégios necessários.