Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Oracle
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-10-2006
avmm2004 avmm2004 is offline
Miembro
 
Registrado: jun 2006
Ubicación: Santa cruz de Tenerife, Islas Canarias
Posts: 500
Poder: 18
avmm2004 Va por buen camino
grant / revoke en oracle a nivel columna

Tengo un programa hecho en delphi que hace el mantenimiento de una tabla. Hasta ahí todo bien. Si el usuario que se conecta a la base de datos no tiene permisos de select o update o insert lo controlo desde delphi perfectamente. Pero el problema se presenta cuando el usuario tiene permisos, por ejemplo de update sobre la tabla y yo quiero que no me actualice / modifique determinadas columnas de la tabla. Las combinaciones son muchas y lo que no quiero es ponerlas en programa (en codigo) ya que cuando se cree un usuario nuevo, tengo que cambiar programa. En otras bases de datos, por ejemplo postgres, existe el Grant y el revoke a nivel de tabla y tambien a nivel de columna. ¿ Existe algo parecido en Oracle ? ¿ Es otro concepto ?.
Se me ha ocurrido hacerlo a nivel de triggers (before update) pero es una lata tambien. He pensado en las views pero son de lectura y complican el tema. Se les ocurre alguna forma.??? Gracias.
Responder Con Cita
  #2  
Antiguo 12-10-2006
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Por lo menos hasta la versión 9i solo tiene permiso sobre tabla completa y no sobre columnas específicas.

Desconozco si la versión 10g posea ésta característica..

Hasta Luego--
__________________
No todo es como parece ser...
Responder Con Cita
  #3  
Antiguo 12-10-2006
jr_ewing jr_ewing is offline
Registrado
 
Registrado: sep 2006
Posts: 5
Poder: 0
jr_ewing Va por buen camino
Se me ocurre que se pueda crear un role que se le asigne únicamente a los usuarios que pueden modificar la tabla sin restricciones, y que en el trigger BEFORE UPDATE se levante una exception si el usuario intenta modificar alguna de las columnas restringidas y no tiene ese role, controlando contra la view USER_ROLE_PRIVS.
Responder Con Cita
  #4  
Antiguo 14-10-2006
avmm2004 avmm2004 is offline
Miembro
 
Registrado: jun 2006
Ubicación: Santa cruz de Tenerife, Islas Canarias
Posts: 500
Poder: 18
avmm2004 Va por buen camino
Rebuscando en la documentación encontré que si se puede.
Código SQL [-]
grant update (campo, campo, campo) on tabla to user
.

Gracias a todos.
Responder Con Cita
  #5  
Antiguo 14-10-2006
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Cita:
Empezado por avmm2004
Rebuscando en la documentación encontré que si se puede.

Código SQL [-]grant update (campo, campo, campo) on tabla to user

.

Gracias a todos.
¿En qué versión ? , Había búscado en la versión 9i, pero no había encontrado nada
__________________
No todo es como parece ser...
Responder Con Cita
  #6  
Antiguo 14-10-2006
avmm2004 avmm2004 is offline
Miembro
 
Registrado: jun 2006
Ubicación: Santa cruz de Tenerife, Islas Canarias
Posts: 500
Poder: 18
avmm2004 Va por buen camino
Yo hice las pruebas en la 9i. De todas formas la documentación la encontré en un libro de Mcgraw hill del administrador de la 8i. Estaba mencionado muy por encima, como un esquema de los que podía funcionar y de hecho funciona. Ahora me queda la parte del error que me devuelve oracle. Siempre que intento, por ejemplo, actualizar una columna sobre el que no tiene permiso me devuelve el error de permisos insuficientes al delphi (lógico ¿no?) pero no me devuelve el campo que lo produjo. No todo es perfecto. Tendré que seguir mirando o alguien sabe algo de eso ????
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Hacer que una columna de un DbGrid aparezca distinta según valor Aprendiendo OOP 11 30-11-2018 14:47:20
trigger a nivel de campo carlomagno Firebird e Interbase 19 23-06-2011 17:39:49
expandir un nivel al TreeView... Essato OOP 4 25-06-2005 01:18:19
Problema Con Grant Fita SQL 2 03-04-2005 17:46:13
Capturar tecleo a nivel de SO DJ VMan Varios 1 30-09-2003 22:20:27


La franja horaria es GMT +2. Ahora son las 19:26:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi