Modificar en función de los permisos de un usuario.

03/01/2004 - 14:16 por Adam Viussà | Informe spam
Os presento esta procedure que, en función de los permisos de un usuario, se
modificaran los campos en los que el usuario tenga permiso y, se devolverá
un String con los nombres de campo que el usuario no tenga permiso...

Al principio creo que està bién pero no me convence el final de ir
comentando campo por campo de la tabla.
Por esto quería interntarlo hacer con la Stored Procedure de sistema
"SP_SPKEYS" que retorna los campos
que son PK y, de esta forma hacer un cursor solo con las Columnas que no son
PK para poder comprobar
si el usuario pueder hacer UPDATE o no...

haber como lo veis...

Gracias.
/*
Esta tabla indica los bits utilizados para los permisos de
objetos quese devuelven cuando sólo se especifica objectid.
Bit(dec) Bit(hex) Permiso de la instrucción
1 0x1 SELECT ALL
2 0x2 UPDATE ALL
4 0x4 REFERENCES ALL
8 0x8 INSERT
16 0x10 DELETE
32 0x20 EXECUTE (sólo procedimientos)
4096 0x1000 SELECT ANY (al menos una columna)
8192 0x2000 UPDATE ANY
16384 0x4000 REFERENCES ANY
Esta tabla muestra los bits utilizados para los permisos de
objeto en lo referente a columnas, devueltos cuando se
especifican objectid y también column.
Bit(dec) Bit(hex) Permiso de la instrucción
1 0x1 SELECT
2 0x2 UPDATE
4 0x4 REFERENCES
*/
CREATE PROCEDURE [dbo].[MNU_OPCIONS_M]
@permisos VARCHAR(512) OUTPUT,
@id_gestio INT,
@id_mnu INT,
@p_id_gestio INT,
@p_id_mnu INT,
@apareix_a_fitxa INT,
@apareix_a_mnu INT,
@win_frm_accio VARCHAR(256),
@web_frm_accio VARCHAR(256)
AS
DECLARE @TAULA VARCHAR(512)
DECLARE @SEL VARCHAR(500)
SET @TAULA = 'MNU_OPCIONS'
IF PERMISSIONS(OBJECT_ID(@TAULA)) & 0x2 = 0x2
BEGIN
UPDATE a
SET a.p_id_gestio = @p_id_gestio,
a.p_id_mnu = @p_id_mnu,
a.apareix_a_fitxa = @apareix_a_fitxa,
a.apareix_a_mnu = @apareix_a_mnu,
a.win_frm_accio = @win_frm_accio,
a.web_frm_accio = @web_frm_accio
FROM [dbo].[MNU_OPCIONS] AS a
WHERE a.id_gestio = @id_gestio
AND a.id_mnu = @id_mnu
SET @permisos = ''
RETURN
END
ELSE
IF PERMISSIONS(OBJECT_ID(@TAULA)) & 0x2000 = 0x2000
BEGIN
SET @SEL = 'UPDATE a SET '
SET @permisos = ''
IF PERMISSIONS(OBJECT_ID(@TAULA),'p_id_gestio') & 0x2 = 0x2
SET @SEL = @SEL + 'a.p_id_gestio = ' + CAST(@p_id_gestio AS VARCHAR) +
', '
ELSE
SET @permisos = @permisos + 'p_id_gestio,'
IF PERMISSIONS(OBJECT_ID(@TAULA),'p_id_mnu') & 0x2 = 0x2
SET @SEL = @SEL + 'a.p_id_mnu = ' + CAST(@p_id_mnu AS VARCHAR) + ', '
ELSE
SET @permisos = @permisos + 'p_id_mnu,'
IF PERMISSIONS(OBJECT_ID(@TAULA),'apareix_a_fitxa') & 0x2 = 0x2
SET @SEL = @SEL + 'a.apareix_a_fitxa = ' + CAST(@apareix_a_fitxa AS
VARCHAR)+ ', '
ELSE
SET @permisos = @permisos + 'apareix_a_fitxa,'
IF PERMISSIONS(OBJECT_ID(@TAULA),'apareix_a_mnu') & 0x2 = 0x2
SET @SEL = @SEL + 'a.apareix_a_mnu = ' + CAST(@apareix_a_mnu AS
VARCHAR)+ ', '
ELSE
SET @permisos = @permisos + 'apareix_a_mnu,'
IF PERMISSIONS(OBJECT_ID(@TAULA),'win_frm_accio') & 0x2 = 0x2
SET @SEL = @SEL + 'a.win_frm_accio = ''' + @win_frm_accio + ''', '
ELSE
SET @permisos = @permisos + 'win_frm_accio,'
IF PERMISSIONS(OBJECT_ID(@TAULA),'web_frm_accio') & 0x2 = 0x2
SET @SEL = @SEL + 'a.web_frm_accio = ''' + @web_frm_accio + ''', '
ELSE
SET @permisos = @permisos + 'web_frm_accio,'
IF @SEL = 'UPDATE a SET '
GOTO ACCES_A_RES
SET @SEL = LEFT(@SEL,LEN(@SEL)-1)
SET @permisos = LEFT(@permisos,LEN(@permisos)-1)
SET @SEL = @SEL + ' FROM [dbo].[' + @TAULA + '] AS a '
SET @SEL = @SEL + ' WHERE a.id_gestio = ' + CAST(@id_gestio AS VARCHAR)
SET @SEL = @SEL + ' AND a.id_mnu = ' + CAST(@id_mnu AS VARCHAR)
EXECUTE (@SEL)
RETURN
END
ELSE
GOTO ACCES_A_RES
ACCES_A_RES:
SET @permisos 'p_id_gestio,p_id_mnu,apareix_a_fitxa,apareix_a_mnu,win_frm_accio,web_frm_ac
cio'
RETURN
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

Preguntas similare

Leer las respuestas

#1 Maximiliano Damian Accotto
03/01/2004 - 14:51 | Informe spam
Adam, creo entender que estas intentado hacer los acceso a una aplicacion de
esta forma no?

De ser asi no lo haria como lo estas haciendo, yo trato siempre en mis
aplicaciones que los usuarios no tengan Acceso directo a las tablas, para
ello o uso Funciones de Aplicacion (te lo recomiendo por lo facil,seguro y
potente que son) o Procedimietos almacenados los cuales acceden a las tablas
y solo los usuarios tienen acceso a estos.

Va son formas de trabajar,no digo que la tuya no sea buena ni mucho menos
pero me preocupa que un Usuario al tener acceso directo a mis tablas se
conecte con un Excel por ej y pueda traer un listado de clientes, cosa que
quiero evitar, o lo que es peor que me metan datos por fuera de mi
aplicacion

No respondi tu pregunta, solo te doy un consejo de como lo hago y lo hice
desde casi siempre.

Salu2

Maximiliano Damian Accotto
Gerente de IT
Fundicion San Cayetano S.A.
Buenos Aires Argentina
-
maxi_accotto[arroba]speedy[.]com[.].ar
MSN:



"Adam Viussà" escribió en el mensaje
news:
Os presento esta procedure que, en función de los permisos de un usuario,


se
modificaran los campos en los que el usuario tenga permiso y, se devolverá
un String con los nombres de campo que el usuario no tenga permiso...

Al principio creo que està bién pero no me convence el final de ir
comentando campo por campo de la tabla.
Por esto quería interntarlo hacer con la Stored Procedure de sistema
"SP_SPKEYS" que retorna los campos
que son PK y, de esta forma hacer un cursor solo con las Columnas que no


son
PK para poder comprobar
si el usuario pueder hacer UPDATE o no...

haber como lo veis...

Gracias.
/*
Esta tabla indica los bits utilizados para los permisos de
objetos quese devuelven cuando sólo se especifica objectid.
Bit(dec) Bit(hex) Permiso de la instrucción
1 0x1 SELECT ALL
2 0x2 UPDATE ALL
4 0x4 REFERENCES ALL
8 0x8 INSERT
16 0x10 DELETE
32 0x20 EXECUTE (sólo procedimientos)
4096 0x1000 SELECT ANY (al menos una columna)
8192 0x2000 UPDATE ANY
16384 0x4000 REFERENCES ANY
Esta tabla muestra los bits utilizados para los permisos de
objeto en lo referente a columnas, devueltos cuando se
especifican objectid y también column.
Bit(dec) Bit(hex) Permiso de la instrucción
1 0x1 SELECT
2 0x2 UPDATE
4 0x4 REFERENCES
*/
CREATE PROCEDURE [dbo].[MNU_OPCIONS_M]
@permisos VARCHAR(512) OUTPUT,
@id_gestio INT,
@id_mnu INT,
@p_id_gestio INT,
@p_id_mnu INT,
@apareix_a_fitxa INT,
@apareix_a_mnu INT,
@win_frm_accio VARCHAR(256),
@web_frm_accio VARCHAR(256)
AS
DECLARE @TAULA VARCHAR(512)
DECLARE @SEL VARCHAR(500)
SET @TAULA = 'MNU_OPCIONS'
IF PERMISSIONS(OBJECT_ID(@TAULA)) & 0x2 = 0x2
BEGIN
UPDATE a
SET a.p_id_gestio = @p_id_gestio,
a.p_id_mnu = @p_id_mnu,
a.apareix_a_fitxa = @apareix_a_fitxa,
a.apareix_a_mnu = @apareix_a_mnu,
a.win_frm_accio = @win_frm_accio,
a.web_frm_accio = @web_frm_accio
FROM [dbo].[MNU_OPCIONS] AS a
WHERE a.id_gestio = @id_gestio
AND a.id_mnu = @id_mnu
SET @permisos = ''
RETURN
END
ELSE
IF PERMISSIONS(OBJECT_ID(@TAULA)) & 0x2000 = 0x2000
BEGIN
SET @SEL = 'UPDATE a SET '
SET @permisos = ''
IF PERMISSIONS(OBJECT_ID(@TAULA),'p_id_gestio') & 0x2 = 0x2
SET @SEL = @SEL + 'a.p_id_gestio = ' + CAST(@p_id_gestio AS VARCHAR)


+
', '
ELSE
SET @permisos = @permisos + 'p_id_gestio,'
IF PERMISSIONS(OBJECT_ID(@TAULA),'p_id_mnu') & 0x2 = 0x2
SET @SEL = @SEL + 'a.p_id_mnu = ' + CAST(@p_id_mnu AS VARCHAR) + ',


'
ELSE
SET @permisos = @permisos + 'p_id_mnu,'
IF PERMISSIONS(OBJECT_ID(@TAULA),'apareix_a_fitxa') & 0x2 = 0x2
SET @SEL = @SEL + 'a.apareix_a_fitxa = ' + CAST(@apareix_a_fitxa AS
VARCHAR)+ ', '
ELSE
SET @permisos = @permisos + 'apareix_a_fitxa,'
IF PERMISSIONS(OBJECT_ID(@TAULA),'apareix_a_mnu') & 0x2 = 0x2
SET @SEL = @SEL + 'a.apareix_a_mnu = ' + CAST(@apareix_a_mnu AS
VARCHAR)+ ', '
ELSE
SET @permisos = @permisos + 'apareix_a_mnu,'
IF PERMISSIONS(OBJECT_ID(@TAULA),'win_frm_accio') & 0x2 = 0x2
SET @SEL = @SEL + 'a.win_frm_accio = ''' + @win_frm_accio + ''', '
ELSE
SET @permisos = @permisos + 'win_frm_accio,'
IF PERMISSIONS(OBJECT_ID(@TAULA),'web_frm_accio') & 0x2 = 0x2
SET @SEL = @SEL + 'a.web_frm_accio = ''' + @web_frm_accio + ''', '
ELSE
SET @permisos = @permisos + 'web_frm_accio,'
IF @SEL = 'UPDATE a SET '
GOTO ACCES_A_RES
SET @SEL = LEFT(@SEL,LEN(@SEL)-1)
SET @permisos = LEFT(@permisos,LEN(@permisos)-1)
SET @SEL = @SEL + ' FROM [dbo].[' + @TAULA + '] AS a '
SET @SEL = @SEL + ' WHERE a.id_gestio = ' + CAST(@id_gestio AS


VARCHAR)
SET @SEL = @SEL + ' AND a.id_mnu = ' + CAST(@id_mnu AS VARCHAR)
EXECUTE (@SEL)
RETURN
END
ELSE
GOTO ACCES_A_RES
ACCES_A_RES:
SET @permisos >


'p_id_gestio,p_id_mnu,apareix_a_fitxa,apareix_a_mnu,win_frm_accio,web_frm_ac
cio'
RETURN
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO


Respuesta Responder a este mensaje
#2 Adam Viussà
03/01/2004 - 15:20 | Informe spam
SI pero, como puedo entonces controlar los accesos a nivel de campo si la
gestión de los usuarios la tiene el SQLServer o, en el caso de Oracle,
oracle?


"Maximiliano Damian Accotto" <maxi_accotto[arroba]speedy[.]com[.]ar>
escribió en el mensaje news:
Adam, creo entender que estas intentado hacer los acceso a una aplicacion


de
esta forma no?

De ser asi no lo haria como lo estas haciendo, yo trato siempre en mis
aplicaciones que los usuarios no tengan Acceso directo a las tablas, para
ello o uso Funciones de Aplicacion (te lo recomiendo por lo facil,seguro y
potente que son) o Procedimietos almacenados los cuales acceden a las


tablas
y solo los usuarios tienen acceso a estos.

Va son formas de trabajar,no digo que la tuya no sea buena ni mucho menos
pero me preocupa que un Usuario al tener acceso directo a mis tablas se
conecte con un Excel por ej y pueda traer un listado de clientes, cosa que
quiero evitar, o lo que es peor que me metan datos por fuera de mi
aplicacion

No respondi tu pregunta, solo te doy un consejo de como lo hago y lo hice
desde casi siempre.

Salu2

Maximiliano Damian Accotto
Gerente de IT
Fundicion San Cayetano S.A.
Buenos Aires Argentina
-
maxi_accotto[arroba]speedy[.]com[.].ar
MSN:



"Adam Viussà" escribió en el mensaje
news:
> Os presento esta procedure que, en función de los permisos de un


usuario,
se
> modificaran los campos en los que el usuario tenga permiso y, se


devolverá
> un String con los nombres de campo que el usuario no tenga permiso...
>
> Al principio creo que està bién pero no me convence el final de ir
> comentando campo por campo de la tabla.
> Por esto quería interntarlo hacer con la Stored Procedure de sistema
> "SP_SPKEYS" que retorna los campos
> que son PK y, de esta forma hacer un cursor solo con las Columnas que no
son
> PK para poder comprobar
> si el usuario pueder hacer UPDATE o no...
>
> haber como lo veis...
>
> Gracias.
> /*
> Esta tabla indica los bits utilizados para los permisos de
> objetos quese devuelven cuando sólo se especifica objectid.
> Bit(dec) Bit(hex) Permiso de la instrucción
> 1 0x1 SELECT ALL
> 2 0x2 UPDATE ALL
> 4 0x4 REFERENCES ALL
> 8 0x8 INSERT
> 16 0x10 DELETE
> 32 0x20 EXECUTE (sólo procedimientos)
> 4096 0x1000 SELECT ANY (al menos una columna)
> 8192 0x2000 UPDATE ANY
> 16384 0x4000 REFERENCES ANY
> Esta tabla muestra los bits utilizados para los permisos de
> objeto en lo referente a columnas, devueltos cuando se
> especifican objectid y también column.
> Bit(dec) Bit(hex) Permiso de la instrucción
> 1 0x1 SELECT
> 2 0x2 UPDATE
> 4 0x4 REFERENCES
> */
> CREATE PROCEDURE [dbo].[MNU_OPCIONS_M]
> @permisos VARCHAR(512) OUTPUT,
> @id_gestio INT,
> @id_mnu INT,
> @p_id_gestio INT,
> @p_id_mnu INT,
> @apareix_a_fitxa INT,
> @apareix_a_mnu INT,
> @win_frm_accio VARCHAR(256),
> @web_frm_accio VARCHAR(256)
> AS
> DECLARE @TAULA VARCHAR(512)
> DECLARE @SEL VARCHAR(500)
> SET @TAULA = 'MNU_OPCIONS'
> IF PERMISSIONS(OBJECT_ID(@TAULA)) & 0x2 = 0x2
> BEGIN
> UPDATE a
> SET a.p_id_gestio = @p_id_gestio,
> a.p_id_mnu = @p_id_mnu,
> a.apareix_a_fitxa = @apareix_a_fitxa,
> a.apareix_a_mnu = @apareix_a_mnu,
> a.win_frm_accio = @win_frm_accio,
> a.web_frm_accio = @web_frm_accio
> FROM [dbo].[MNU_OPCIONS] AS a
> WHERE a.id_gestio = @id_gestio
> AND a.id_mnu = @id_mnu
> SET @permisos = ''
> RETURN
> END
> ELSE
> IF PERMISSIONS(OBJECT_ID(@TAULA)) & 0x2000 = 0x2000
> BEGIN
> SET @SEL = 'UPDATE a SET '
> SET @permisos = ''
> IF PERMISSIONS(OBJECT_ID(@TAULA),'p_id_gestio') & 0x2 = 0x2
> SET @SEL = @SEL + 'a.p_id_gestio = ' + CAST(@p_id_gestio AS


VARCHAR)
+
> ', '
> ELSE
> SET @permisos = @permisos + 'p_id_gestio,'
> IF PERMISSIONS(OBJECT_ID(@TAULA),'p_id_mnu') & 0x2 = 0x2
> SET @SEL = @SEL + 'a.p_id_mnu = ' + CAST(@p_id_mnu AS VARCHAR) +


',
'
> ELSE
> SET @permisos = @permisos + 'p_id_mnu,'
> IF PERMISSIONS(OBJECT_ID(@TAULA),'apareix_a_fitxa') & 0x2 = 0x2
> SET @SEL = @SEL + 'a.apareix_a_fitxa = ' + CAST(@apareix_a_fitxa


AS
> VARCHAR)+ ', '
> ELSE
> SET @permisos = @permisos + 'apareix_a_fitxa,'
> IF PERMISSIONS(OBJECT_ID(@TAULA),'apareix_a_mnu') & 0x2 = 0x2
> SET @SEL = @SEL + 'a.apareix_a_mnu = ' + CAST(@apareix_a_mnu AS
> VARCHAR)+ ', '
> ELSE
> SET @permisos = @permisos + 'apareix_a_mnu,'
> IF PERMISSIONS(OBJECT_ID(@TAULA),'win_frm_accio') & 0x2 = 0x2
> SET @SEL = @SEL + 'a.win_frm_accio = ''' + @win_frm_accio + ''', '
> ELSE
> SET @permisos = @permisos + 'win_frm_accio,'
> IF PERMISSIONS(OBJECT_ID(@TAULA),'web_frm_accio') & 0x2 = 0x2
> SET @SEL = @SEL + 'a.web_frm_accio = ''' + @web_frm_accio + ''', '
> ELSE
> SET @permisos = @permisos + 'web_frm_accio,'
> IF @SEL = 'UPDATE a SET '
> GOTO ACCES_A_RES
> SET @SEL = LEFT(@SEL,LEN(@SEL)-1)
> SET @permisos = LEFT(@permisos,LEN(@permisos)-1)
> SET @SEL = @SEL + ' FROM [dbo].[' + @TAULA + '] AS a '
> SET @SEL = @SEL + ' WHERE a.id_gestio = ' + CAST(@id_gestio AS
VARCHAR)
> SET @SEL = @SEL + ' AND a.id_mnu = ' + CAST(@id_mnu AS VARCHAR)
> EXECUTE (@SEL)
> RETURN
> END
> ELSE
> GOTO ACCES_A_RES
> ACCES_A_RES:
> SET @permisos > >



'p_id_gestio,p_id_mnu,apareix_a_fitxa,apareix_a_mnu,win_frm_accio,web_frm_ac
> cio'
> RETURN
> GO
> SET QUOTED_IDENTIFIER OFF
> GO
> SET ANSI_NULLS ON
> GO
>
>


Respuesta Responder a este mensaje
#3 Maximiliano Damian Accotto
03/01/2004 - 15:42 | Informe spam
con vistas y le das acceso a los usuarios a la vista me explico?





Salu2

Maximiliano Damian Accotto
Gerente de IT
Fundicion San Cayetano S.A.
Buenos Aires Argentina
-
maxi_accotto[arroba]speedy[.]com[.].ar
MSN:



"Adam Viussà" escribió en el mensaje
news:%
SI pero, como puedo entonces controlar los accesos a nivel de campo si la
gestión de los usuarios la tiene el SQLServer o, en el caso de Oracle,
oracle?


"Maximiliano Damian Accotto" <maxi_accotto[arroba]speedy[.]com[.]ar>
escribió en el mensaje news:
> Adam, creo entender que estas intentado hacer los acceso a una


aplicacion
de
> esta forma no?
>
> De ser asi no lo haria como lo estas haciendo, yo trato siempre en mis
> aplicaciones que los usuarios no tengan Acceso directo a las tablas,


para
> ello o uso Funciones de Aplicacion (te lo recomiendo por lo facil,seguro


y
> potente que son) o Procedimietos almacenados los cuales acceden a las
tablas
> y solo los usuarios tienen acceso a estos.
>
> Va son formas de trabajar,no digo que la tuya no sea buena ni mucho


menos
> pero me preocupa que un Usuario al tener acceso directo a mis tablas se
> conecte con un Excel por ej y pueda traer un listado de clientes, cosa


que
> quiero evitar, o lo que es peor que me metan datos por fuera de mi
> aplicacion
>
> No respondi tu pregunta, solo te doy un consejo de como lo hago y lo


hice
> desde casi siempre.
>
> Salu2
>
> Maximiliano Damian Accotto
> Gerente de IT
> Fundicion San Cayetano S.A.
> Buenos Aires Argentina
> -
> maxi_accotto[arroba]speedy[.]com[.].ar
> MSN:
>
>
>
> "Adam Viussà" escribió en el mensaje
> news:
> > Os presento esta procedure que, en función de los permisos de un
usuario,
> se
> > modificaran los campos en los que el usuario tenga permiso y, se
devolverá
> > un String con los nombres de campo que el usuario no tenga permiso...
> >
> > Al principio creo que està bién pero no me convence el final de ir
> > comentando campo por campo de la tabla.
> > Por esto quería interntarlo hacer con la Stored Procedure de sistema
> > "SP_SPKEYS" que retorna los campos
> > que son PK y, de esta forma hacer un cursor solo con las Columnas que


no
> son
> > PK para poder comprobar
> > si el usuario pueder hacer UPDATE o no...
> >
> > haber como lo veis...
> >
> > Gracias.
> > /*
> > Esta tabla indica los bits utilizados para los permisos de
> > objetos quese devuelven cuando sólo se especifica objectid.
> > Bit(dec) Bit(hex) Permiso de la instrucción
> > 1 0x1 SELECT ALL
> > 2 0x2 UPDATE ALL
> > 4 0x4 REFERENCES ALL
> > 8 0x8 INSERT
> > 16 0x10 DELETE
> > 32 0x20 EXECUTE (sólo procedimientos)
> > 4096 0x1000 SELECT ANY (al menos una columna)
> > 8192 0x2000 UPDATE ANY
> > 16384 0x4000 REFERENCES ANY
> > Esta tabla muestra los bits utilizados para los permisos de
> > objeto en lo referente a columnas, devueltos cuando se
> > especifican objectid y también column.
> > Bit(dec) Bit(hex) Permiso de la instrucción
> > 1 0x1 SELECT
> > 2 0x2 UPDATE
> > 4 0x4 REFERENCES
> > */
> > CREATE PROCEDURE [dbo].[MNU_OPCIONS_M]
> > @permisos VARCHAR(512) OUTPUT,
> > @id_gestio INT,
> > @id_mnu INT,
> > @p_id_gestio INT,
> > @p_id_mnu INT,
> > @apareix_a_fitxa INT,
> > @apareix_a_mnu INT,
> > @win_frm_accio VARCHAR(256),
> > @web_frm_accio VARCHAR(256)
> > AS
> > DECLARE @TAULA VARCHAR(512)
> > DECLARE @SEL VARCHAR(500)
> > SET @TAULA = 'MNU_OPCIONS'
> > IF PERMISSIONS(OBJECT_ID(@TAULA)) & 0x2 = 0x2
> > BEGIN
> > UPDATE a
> > SET a.p_id_gestio = @p_id_gestio,
> > a.p_id_mnu = @p_id_mnu,
> > a.apareix_a_fitxa = @apareix_a_fitxa,
> > a.apareix_a_mnu = @apareix_a_mnu,
> > a.win_frm_accio = @win_frm_accio,
> > a.web_frm_accio = @web_frm_accio
> > FROM [dbo].[MNU_OPCIONS] AS a
> > WHERE a.id_gestio = @id_gestio
> > AND a.id_mnu = @id_mnu
> > SET @permisos = ''
> > RETURN
> > END
> > ELSE
> > IF PERMISSIONS(OBJECT_ID(@TAULA)) & 0x2000 = 0x2000
> > BEGIN
> > SET @SEL = 'UPDATE a SET '
> > SET @permisos = ''
> > IF PERMISSIONS(OBJECT_ID(@TAULA),'p_id_gestio') & 0x2 = 0x2
> > SET @SEL = @SEL + 'a.p_id_gestio = ' + CAST(@p_id_gestio AS
VARCHAR)
> +
> > ', '
> > ELSE
> > SET @permisos = @permisos + 'p_id_gestio,'
> > IF PERMISSIONS(OBJECT_ID(@TAULA),'p_id_mnu') & 0x2 = 0x2
> > SET @SEL = @SEL + 'a.p_id_mnu = ' + CAST(@p_id_mnu AS VARCHAR) +
',
> '
> > ELSE
> > SET @permisos = @permisos + 'p_id_mnu,'
> > IF PERMISSIONS(OBJECT_ID(@TAULA),'apareix_a_fitxa') & 0x2 = 0x2
> > SET @SEL = @SEL + 'a.apareix_a_fitxa = ' + CAST(@apareix_a_fitxa
AS
> > VARCHAR)+ ', '
> > ELSE
> > SET @permisos = @permisos + 'apareix_a_fitxa,'
> > IF PERMISSIONS(OBJECT_ID(@TAULA),'apareix_a_mnu') & 0x2 = 0x2
> > SET @SEL = @SEL + 'a.apareix_a_mnu = ' + CAST(@apareix_a_mnu AS
> > VARCHAR)+ ', '
> > ELSE
> > SET @permisos = @permisos + 'apareix_a_mnu,'
> > IF PERMISSIONS(OBJECT_ID(@TAULA),'win_frm_accio') & 0x2 = 0x2
> > SET @SEL = @SEL + 'a.win_frm_accio = ''' + @win_frm_accio + ''',


'
> > ELSE
> > SET @permisos = @permisos + 'win_frm_accio,'
> > IF PERMISSIONS(OBJECT_ID(@TAULA),'web_frm_accio') & 0x2 = 0x2
> > SET @SEL = @SEL + 'a.web_frm_accio = ''' + @web_frm_accio + ''',


'
> > ELSE
> > SET @permisos = @permisos + 'web_frm_accio,'
> > IF @SEL = 'UPDATE a SET '
> > GOTO ACCES_A_RES
> > SET @SEL = LEFT(@SEL,LEN(@SEL)-1)
> > SET @permisos = LEFT(@permisos,LEN(@permisos)-1)
> > SET @SEL = @SEL + ' FROM [dbo].[' + @TAULA + '] AS a '
> > SET @SEL = @SEL + ' WHERE a.id_gestio = ' + CAST(@id_gestio AS
> VARCHAR)
> > SET @SEL = @SEL + ' AND a.id_mnu = ' + CAST(@id_mnu AS VARCHAR)
> > EXECUTE (@SEL)
> > RETURN
> > END
> > ELSE
> > GOTO ACCES_A_RES
> > ACCES_A_RES:
> > SET @permisos > > >
>



'p_id_gestio,p_id_mnu,apareix_a_fitxa,apareix_a_mnu,win_frm_accio,web_frm_ac
> > cio'
> > RETURN
> > GO
> > SET QUOTED_IDENTIFIER OFF
> > GO
> > SET ANSI_NULLS ON
> > GO
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Adam Viussà
03/01/2004 - 15:46 | Informe spam
Hostia... pues si... tienes razón. No había caido en ello.

Gracias y feliz año nuevo.
Respuesta Responder a este mensaje
#5 Maximiliano Damian Accotto
03/01/2004 - 16:11 | Informe spam
:-), feliz año.

disculpa que te haya dicho eso pero pasa lo siguiente:

Vos suponete q armas un sistema de gestion que vas a vender a mi empresa y
cuando lo pongo descubro que desde un Excel hay acceso, la verdad que tu
sistema no pasaria las pruebas de control de calidad y no solo eso sino que
no seria nada agradable que desde un Excel te saquen los datos verdad?

si te interesa tengo un documento de como usar las funciones de aplicacion,
de ser asi pasame el mail y te lo envio sin costo alguno ;-)



Salu2

Maximiliano Damian Accotto
Gerente de IT
Fundicion San Cayetano S.A.
Buenos Aires Argentina
-
maxi_accotto[arroba]speedy[.]com[.].ar
MSN:



"Adam Viussà" escribió en el mensaje
news:
Hostia... pues si... tienes razón. No había caido en ello.

Gracias y feliz año nuevo.


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida