PDA

Ver la Versión Completa : permisos de usuarios


laukri
13-12-2007, 18:55:14
hola!
queria saber si hay alguna forma de darle a todos los usuarios (es decir al PUBLIC) permiso de select para TODAS las tablas, sin tener que hacerlo de a una.

Lepe
14-12-2007, 18:42:24
A esperas de una mejor solución (aportada por otro compañero), puedes hacer un bucle en delphi y enviar los resultados a un IBScript, algo así:

El TDatabase tiene un método GetTableNames, o bien TableNames:

var s:TSTringlist;
BEGIN
s := Tstringlist.create;
database1.GetTableNames(s);
for i:= 0 to s.count-1 do
ibScript1.Script.Add('Grant SELECT ' + s[i] + ' to public;');
s.free;
ibscript1.Execute;
end;

.. hecho de memoria, pero pillas la idea.

Saludos

laukri
15-12-2007, 14:57:38
gracias, pero yo estoy trabajando con ibexpert y no desde delphi.
Pero igual esta buena tu opcion...

Lepe
16-12-2007, 09:27:51
Hace poco se vió en un hilo como buscar los nombres de las tablas en Firebird (http://www.clubdelphi.com/foros/showthread.php?t=35922&highlight=nombre+tablas+firebird).

Después puede usar Execute Statetement para crear la sql al vuelo con un string y ejecutarla, (sería mejor crear un Store Procedure ;)):

declare variable strSql varchar (80)
as
for select ....< es sql larga >
into :NombreTabla do
begin
strsql = 'grant select ' || :NombreTabla || ' to public';
execute statement strsql
end;