Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Scientist

[Resolvido] Criação de Banco via PHP - Acesso Negado

Recommended Posts

Bom dia, tenho uma parte de um código em PHP que necessita realizar o seguinte comando DDL

create database nomedabase

, localmente funciona perfeitamente e o banco é criado.

O problema começa quando passo isso para a hospedagem, ela não permite a criação de um banco via PhpMyAdmin, apenas pelo CPANEL (testei na Ravehost e na Locaweb), e pelo que estou percebendo vai ser difícil encontrar uma hospedagem que me possibilite isso, porém esta é uma função primordial do sistema (não pode ser excluída).

 

Alguém tem alguma ideia de como contornar esse problema ?

 

Alguém tem alguma ideia de como resolver isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque toda vez que um novo cliente se registra, deve ser criado um banco automaticamente com o apelido dele. Exemplo: joaozinho_bd

 

o DDL ficaria assim: create database joaozinho_bd

Compartilhar este post


Link para o post
Compartilhar em outros sites

geralmente os planos de hospedagem tem um limite de bases q podem ser criadas, claro depende do plano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Algum dos seus usuários poderia ter permissão para isto, mas normalmente esta tarefa é possível apenas atravez do painel de controle. Em todo caso, reavalie esta "funcionalidade" do seu sistema, me parece errado.

 

Procure por serviços de dedicados ou VPS.

 

Paz e bem!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um novo banco de dados só pode ser criado pelo usuário "root" ou outro usuário que tenha super privilégios, usando um usuário comum e sem privilégios você não vai conseguir criar.

 

Como você disse que está usando o painel cPanel e a sua conta permite a criação de novas bases de dados, você pode fazer isso usando a API.

 

Documentação da API seta.gifhttp://docs.cpanel.n...ApiIntroduction

Biblioteca em PHP para integração com a API seta.gifhttps://github.com/C...lInc/xmlapi-php

 

O iMasters também tem uma API para integração com o cPanel escrita pelo João Batista Neto seta.gifhttps://github.com/iMastersDev/cpanel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você disse que está usando o painel cPanel e a sua conta permite a criação de novas bases de dados, você pode fazer isso usando a API.

 

Se... a API estiver liberada. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se... a API estiver liberada. smile.gif

 

Tem como desativar a API do cPanel? Eu nunca vi essa opção no painel do WHM.

 

O que eu sei é que se você for administrador do servidor ou tiver uma revenda (reseller) você pode gerar um hash no WHM e fazer a autenticação na API usando este hash, o que aumenta a segurança e evita problemas com trocas de senha. Já os usuários comuns, que apenas tem uma hospedagem no cPanel podem se autenticar na API usando o usuário e senha da conta.

 

A API do cPanel permite estas duas formas de autenticação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente, tenho consciência que fazer isso é errado, criar um monte de banco de dados para cada usuário. Porém o cliente exigiu isso. Vou estudar a API do CPanel criado pelo João para ver o que consigo fazer.

 

Agora é descobrir como criar um banco de dados pela API

 

Pessoal, eu li todo o arquivo xmlapi.php e não encontrei nenhuma função que realiza a adição de banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A classe xmlapi possui apenas métodos para funções mais comuns.

 

No caso de precisar de uma função mais específica, você deve utilizar o método xmlapi_query com base na documentação da API.

 

Qualquer dúvida posta aí. smile.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tava vendo umas aplicações aqui que integrei com o cPanel e lembrei que a API deles tem duas versões, a 1 e a 2.

 

Para usar a API 1 você usa o método api1_query e a API 2 o método api2_query.

 

Documentação do módulo MySQL usando a API 1 seta.gifhttp://docs.cpanel.n...s/Api1/ApiMysql

 

Exemplo de uso do método:

 

$xmlapi->api1_query('seu_usuario_do_cpanel', 'Mysql', 'adddb', array('nome_do_db_que_deseja_criar'));

 

No primeiro parametro do método api1_query você coloca o seu usuário do cPanel, depois o nome do módulo da API (neste caso Mysql), depois o nome da função (no caso "adddb" para adicionar um novo banco de dados) e por último um array com os parâmetros a serem informados (no caso apenas o nome do banco de dados).

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.