Caros colegas, estou com um serio problema e o seguinte, quero fazer um controle de perfis de usuarios onde gravo em uma tabela o que o usuario pode ou naum fazer nas tabelas do DB ex: deletar, selecionar,editar...etc

a minha procedure do my sql esta assim:

CREATE PROCEDURE `sp_usuarios`(IN usuario INTEGER(11))
    NOT DETERMINISTIC
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE delete_user,update_user,REFERENCES_user,insert_user,SELECT_user integer; /* variaveis */
DECLARE perfil_user integer;
DECLARE db_user, db_user2 varchar(20);
DECLARE ver varchar(30);
DECLARE tipo_user varchar(30);
DECLARE comando text;
declare objeto_user varchar(70);
declare cur_priv cursor for select deleta,atualiza,referencia,insere,seleciona,tipo,objeto from `privilegios` where perfil_cod = perfil_user;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
select usuario_db,perfil_cod into db_user, perfil_user from usuarios where codigo = usuario;
open cur_priv;
   repeat
   FETCH cur_priv INTO delete_user,update_user,REFERENCES_user,insert_user,SELECT_user,tipo_user,objeto_user;
   IF NOT done THEN
   case delete_user
      when 1 then
      begin
      set comando = Concat('grant select on bancodados.',objeto_user,' to ',db_user,'@localhost;');
     
       /* aqui esta a linha de comando que quero execultar, tentei assim e naum deu certo o que execulta e os nomes da variavel e naum os valores */
      grant select on bancodados.objeto_user to db_user@'localhost';
      /* e tb ja tentei assim */
      execute comando; /*mas tb naum deu certo*/
      end;
      when 0 then set ver = 'falso';
      end case;
   end if;
   UNTIL done  END REPEAT;
   CLOSE cur_priv;
commit;
END;


se alguem tiver alguma outra ideia posta ai e se puderem me ajudar eu agradeco e tb se tiverem alguma documentacao profissional do my sql 5 tb aceito obrigado;

[As partes desta mensagem que não continham texto foram removidas]



--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]



Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE


Links do Yahoo! Grupos

Responder a