“login” para o phpMyAdmin através de diferentes usuários

7

Eu quero que um não-técnico (marketing / vendas) tenha acesso aos dados que eu gerencio regularmente via phpMyAdmin:

  1. sem capacidade de alterar / inserir / excluir
  2. sem que eu tenha que criar um aplicativo visualizador de banco de dados especial

Eu criei um novo usuário com privilégios limitados, mas eu não quero que meu não-técnico tenha que usar um prompt de comando e aprender comandos mysql.

Idealmente, eu quero que ele seja capaz de ir para o phpmyadmin UI, mas apenas as habilidades permitidas (neste caso, somente leitura).

Eu preciso configurar um phpmyadmin separado, onde o usuário controlador é esse usuário mais fraco? Ou há uma interface especial de "fazer login como usuário específico" que perdi na documentação?

ATUALIZAÇÃO:

Eu vi as telas de login sugeridas pelo googletorp quando eu usei o pmas instalado automaticamente pelos hosts, mas nunca nas versões prontas que eu instalei.

Eu tentei comentar $ cfg ['Servers'] [$ i] ['user'], e $ cfg ['Servers'] [$ i] ['pass'] googletorp sugerido - que talvez fosse me apresentar com uma tela de login. Mas, em vez disso, recebo o erro # 1045:

#1045 - Access denied for user 'root'@'localhost' (using password: NO)

Então eu pensei em comentar os $ cfg ['Servers'] [$ i] ['controluser'] e $ cfg ['Servers'] [$ i] ['controlpass']. Mas os comentários dizem que eles já são supostos como usuários somente leitura.

hm ...

    
por Jonah Goldstein 28.09.2010 / 00:34

4 respostas

4

O phpmyadmin é apenas uma interface no mysql. Você só pode fazer o que tem permissão para fazer com base no usuário que usa para fazer login. No final, o phpmyadmin executa consultas para você com as credenciais de usuário com as quais você faz login e não pode ignorar as permissões do mysql.

Então, se você criar um usuário com acesso limitado, ele poderá usar o phpmyadmin existente.

Você pode experimentar e fazer login com o usuário que criou e ver como a interface é exibida com permissões limitadas.

Atualização:

De todas as instalações do phpmyadmin que experimentei entre diferentes provedores de hospedagem, etc, é assim:

Agora, a partir do outro comentário, você desabilitou isso definindo o usuário no arquivo de configuração. Eu não testei isso, pois não uso mais o phpmyadmin localmente, mas eu suponho que se você remover as credenciais do mysql do arquivo de configuração, você será presenteado com a tela de login acima. Permitindo usar usuários diferentes com permissões diferentes.

    
por 28.09.2010 / 05:15
2

Se você tem uma instalação padrão do phpMyAdmin, você está usando a autenticação 'config', e seu nome e senha estão armazenados no arquivo config.inc.php. Como você não está vendo uma tela de login, você provavelmente     $ cfg ['Servers'] [$ i] ['auth_type'] = 'config' lá, se você verificar. Você também verá seu nome e senha. Algo como     $ cfg ['Servers'] [$ i] ['user'] = 'root';     $ cfg ['Servers'] [$ i] ['senha'] = '';     $ cfg ['Servers'] [$ i] ['AllowNoPassword'] = true;

Para que a tela de login seja exibida, você deseja mudar para usar a autenticação de 'cookies'. Você precisa fazer duas alterações no arquivo config.inc.php para que isso aconteça, e uma terceira alteração é altamente recomendada para segurança. Você pode ver o link para mais informações, se você quiser conhecer suas outras opções.

Vou listar as alterações na ordem em que elas ocorrem no arquivo.

  1. (Recomendado) Altere o blowfish_secret para qualquer string aleatória. Como dizem os comentários do arquivo, essa string é usada para criptografar sua senha na autenticação baseada em cookie (que é o que você está prestes a mudar).

    $cfg['blowfish_secret'] = 'random string';
    
  2. Na linha 19, mude o tipo de autenticação para cookie

    $cfg['Servers'][$i]['auth_type']            = 'cookie'; /*DEFAULT: 'config'
    
  3. Exclua as três linhas que estão armazenando sua senha. (Se você ainda estiver usando o usuário 'root' com senha '', você provavelmente deve mudar isso. Enquanto estiver logado no phpMyAdmin como root, você pode alterar / definir a senha.)

Salve o arquivo e, a partir de agora, você receberá a tela de login e precisará usar um nome de usuário e senha.

    
por 14.05.2011 / 22:21
1

Eu não entendo muito bem o que você está pedindo ...

Se você criou o usuário mysql no phpmyadmin, então o seu colega de trabalho pode fazer apenas as operações sql que você permitiu que ele usasse.

O que você quer dizer com isso:

but I don't want My non-techie to have to use a command prompt and learn mysql commands.

você tem o phpmyadmin no seu computador local no qual o mysql está instalado? De qualquer forma, ele não pode fazer nada com o comando promt, é claro, se o seu colega de trabalho não conhece nenhum outro login de usuário que tenha permissões mais altas .. Se você está preocupado em hackear a senha do mysql, duvido que ele consiga fazer isto. O único risco é que ele possa excluir seus arquivos de banco de dados. Mas se você criou um usuário para ele (em qualquer Sistema de Operação que você esteja usando) que permissões não permitem acessar esses arquivos de banco de dados, então é seguro.

    
por 28.09.2010 / 00:46
1

Como alternativa, você pode usar o Oracle SQL Developer + MySQL JDBC Driver

    
por 28.09.2010 / 04:19