Fórum Problemas com permissões de acesso #50457
11/04/2005
0
Estou fazendo um programa de logs por triggers.. Até agora esta tudo ok funciona perfeitamente.. porem me surgiu um problema.. se eu tenho um usuario diferente do sysdba não consigo alterar as triggers por ele..
Exemplo: Criei uma trigger com o usuario SYSDBA. Conectei no banco com o usuario TRANSF e tentei fazer uma alteração na mesma.. eis q vem o erro: Unsucceful metadata update. MODIFY TRIGGER failed no permission for control access to TABLE...
Aqui esta o codigo q fiz para fazer as permissões do usuario TRANSF ficarem iguais a do usuario SYSDBA. Aparentemente funcionou com todas tabelas .. menos as triggers
Alguem tem alguma ideia do pq desse erro?
Uso IB 6.1, com dbExpress
Exemplo: Criei uma trigger com o usuario SYSDBA. Conectei no banco com o usuario TRANSF e tentei fazer uma alteração na mesma.. eis q vem o erro: Unsucceful metadata update. MODIFY TRIGGER failed no permission for control access to TABLE...
Aqui esta o codigo q fiz para fazer as permissões do usuario TRANSF ficarem iguais a do usuario SYSDBA. Aparentemente funcionou com todas tabelas .. menos as triggers
SQLConsulta.Active := False; SQLConsulta.SQL.Clear; SQLConsulta.SQL.Append(´INSERT INTO RDB$USER_PRIVILEGES(RDB$USER, RDB$GRANTOR, RDB$PRIVILEGE, RDB$GRANT_OPTION, RDB$RELATION_NAME, RDB$FIELD_NAME, RDB$USER_TYPE, RDB$OBJECT_TYPE)´); SQLConsulta.SQL.Append(´SELECT ´´TRANSF´´, RDB$GRANTOR, RDB$PRIVILEGE, RDB$GRANT_OPTION, RDB$RELATION_NAME, RDB$FIELD_NAME, RDB$USER_TYPE, RDB$OBJECT_TYPE´); SQLConsulta.SQL.Append(´ FROM RDB$USER_PRIVILEGES A WHERE A.RDB$USER = ´´SYSDBA´´ AND´); SQLConsulta.SQL.Append(´ NOT EXISTS(SELECT B.RDB$USER FROM RDB$USER_PRIVILEGES B WHERE´); SQLConsulta.SQL.Append(´ B.RDB$USER = ´´TRANSF´´ AND A.RDB$PRIVILEGE = B.RDB$PRIVILEGE AND´); SQLConsulta.SQL.Append(´ (A.RDB$GRANT_OPTION = B.RDB$GRANT_OPTION OR B.RDB$GRANT_OPTION IS NULL) AND´); SQLConsulta.SQL.Append(´ A.RDB$RELATION_NAME = B.RDB$RELATION_NAME)´); SQLConsulta.ExecSQL(True);
Alguem tem alguma ideia do pq desse erro?
Uso IB 6.1, com dbExpress
Ltres
Curtir tópico
+ 0
Responder
Posts
11/04/2005
Afarias
Apenas o OWNER do objeto (e o SYSDBA) pode alterá-lo. Crie os objetos como o usuário TRANSF e este terá o controle q vc deseja.
T+
T+
Responder
Gostei + 0
11/04/2005
Ltres
Valeu.. Era o q eu temia... :( Mas td bem, vamos a luta 8)
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)