Problemas com permissões de acesso
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
Curtidas 0
Respostas
Afarias
11/04/2005
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+
GOSTEI 0
Ltres
11/04/2005
Valeu.. Era o q eu temia... :( Mas td bem, vamos a luta 8)
GOSTEI 0