obteniendo informacion del usuario conectado al server

01/04/2005 - 19:35 por .·:m·a·r·l·a:·. | Informe spam
holas a todos

para administrar las autorizaciones en el servidor sql tenemos creados una
serie de grupos de dominio NT, de tal forma que cada uno representa un rol
mas o menos


asi a un usuario SQL (grupo de dominio NT) le damos permisos para ciertas
tablas/vistas/sp ...,

y los usuarios individuales los asignamos a estos grupos de dominio

de esta forma mantenemos mas o menos limpio el sql de largas listas de
usarios
otra razon es devido a que no somos el mismo grupo de personas los que
estamos encargados de los servidores SQL y los encargados de las
autorizaciones de cualquier sistema

la cosa funciona perfectamente hasta que intento recuperar el nombre de
usuario y grupo del una persona que se conecta al server

como ejemplo

yo:
dominio\U1
usuario normales:
dominio\U2
dominio\U3
dominio\U4
dominio\U5

grupos de usuarios
dominio\G1
dominio\G2

tal que usuarios U2 y U3 pertenecen a G1 y U4 y U5 a G2

en el servidor SQL (servidor -> base de datos -> Users )

Name Login Name DataBase access
dbo dominio\U1 permit
G1 dominio\G1 permit
G2 dominio\G2 permit


asi si desde mi cuenta compruebo el valor de las funciones de usuario estas
me dan:

session_user : dbo
current_user : dbo
system_user : dominio\U1
user : dbo

pero si desde cualquier otra cuenta me da (ejemplo desde U5)

session_user : dominio\U5
current_user : dominio\U5
system_user : dominio\U5
user : dominio\U5

en lugar de

session_user : G2
current_user : G2
system_user : dominio\U5
user : G2


y mas gracioso aun es utilizando los sp tal como sp_helpuser

con la sintaxis:
USE [my_database]
DECLARE @name_in_db nvarchar (128)
SELECT @name_in_db = user
EXEC [dbo].[sp_helpuser] @name_in_db

desde mi cuenta me da correctamente

UserName GroupName LoginName DefName UserID SID
dbo db_owner dominio\U1 master 1 0x0...

pero desde la cuenta desde cualquier otro usuario el mensaje de error es:

Server: Msg 15198, Level16, Stage 1, Procedure sp_helpuser, Line 189
The name supplied (dominio\U5) is not a user, role, or aliased login

devido a que user devuelve U5 en lugar del usuario SQL que es G2



como puedo entonces hacerlo ??
hay alguna otra forma de obtener el SID del usuario que se conecta ??

mi intencion en proveer el valor del nombre del grupo de usuario NT en una
vista (para interfaces hechos en acess project y html)



gracias por adelantado

Preguntas similare

Leer las respuestas

#1 Maxi
01/04/2005 - 23:09 | Informe spam
Hola, has probado con Suser_Sname()


Salu2
Maxi


".·:m·a·r·l·a:·." escribió en el mensaje
news:
holas a todos

para administrar las autorizaciones en el servidor sql tenemos creados una
serie de grupos de dominio NT, de tal forma que cada uno representa un rol
mas o menos


asi a un usuario SQL (grupo de dominio NT) le damos permisos para ciertas
tablas/vistas/sp ...,

y los usuarios individuales los asignamos a estos grupos de dominio

de esta forma mantenemos mas o menos limpio el sql de largas listas de
usarios
otra razon es devido a que no somos el mismo grupo de personas los que
estamos encargados de los servidores SQL y los encargados de las
autorizaciones de cualquier sistema

la cosa funciona perfectamente hasta que intento recuperar el nombre de
usuario y grupo del una persona que se conecta al server

como ejemplo

yo:
dominio\U1
usuario normales:
dominio\U2
dominio\U3
dominio\U4
dominio\U5

grupos de usuarios
dominio\G1
dominio\G2

tal que usuarios U2 y U3 pertenecen a G1 y U4 y U5 a G2

en el servidor SQL (servidor -> base de datos -> Users )

Name Login Name DataBase access
dbo dominio\U1 permit
G1 dominio\G1 permit
G2 dominio\G2 permit


asi si desde mi cuenta compruebo el valor de las funciones de usuario
estas
me dan:

session_user : dbo
current_user : dbo
system_user : dominio\U1
user : dbo

pero si desde cualquier otra cuenta me da (ejemplo desde U5)

session_user : dominio\U5
current_user : dominio\U5
system_user : dominio\U5
user : dominio\U5

en lugar de

session_user : G2
current_user : G2
system_user : dominio\U5
user : G2


y mas gracioso aun es utilizando los sp tal como sp_helpuser

con la sintaxis:
USE [my_database]
DECLARE @name_in_db nvarchar (128)
SELECT @name_in_db = user
EXEC [dbo].[sp_helpuser] @name_in_db

desde mi cuenta me da correctamente

UserName GroupName LoginName DefName UserID SID
dbo db_owner dominio\U1 master 1 0x0...

pero desde la cuenta desde cualquier otro usuario el mensaje de error es:

Server: Msg 15198, Level16, Stage 1, Procedure sp_helpuser, Line 189
The name supplied (dominio\U5) is not a user, role, or aliased login

devido a que user devuelve U5 en lugar del usuario SQL que es G2



como puedo entonces hacerlo ??
hay alguna otra forma de obtener el SID del usuario que se conecta ??

mi intencion en proveer el valor del nombre del grupo de usuario NT en una
vista (para interfaces hechos en acess project y html)



gracias por adelantado


Respuesta Responder a este mensaje
#2 .·:m·a·r·l·a:·.
04/04/2005 - 18:47 | Informe spam
hola maxi

gracias por la respuesta, pero sigo igual

probe con suser_sname y obtengo el usuario individual, no el login del grupo
de usuarios (U5, no G3, en el ejemplo que comentaba anteriormente)

y para mas inri, pruevo suser_sid y obtengo un sid que no aparece en la
tabla de usuarios del system, (supongo que sea el del usuario U5, pero en la
tabla del systema solo hay sid para G3 como grupo, y no para U5)

tan mal se llevan SQLserver y los grupos de usuarios de NT ???

"Maxi" wrote in message
news:
Hola, has probado con Suser_Sname()


Salu2
Maxi


".·:m·a·r·l·a:·." escribió en el mensaje
news:
> holas a todos
>
> para administrar las autorizaciones en el servidor sql tenemos creados


una
> serie de grupos de dominio NT, de tal forma que cada uno representa un


rol
> mas o menos
>
>
> asi a un usuario SQL (grupo de dominio NT) le damos permisos para


ciertas
> tablas/vistas/sp ...,
>
> y los usuarios individuales los asignamos a estos grupos de dominio
>
> de esta forma mantenemos mas o menos limpio el sql de largas listas de
> usarios
> otra razon es devido a que no somos el mismo grupo de personas los que
> estamos encargados de los servidores SQL y los encargados de las
> autorizaciones de cualquier sistema
>
> la cosa funciona perfectamente hasta que intento recuperar el nombre de
> usuario y grupo del una persona que se conecta al server
>
> como ejemplo
>
> yo:
> dominio\U1
> usuario normales:
> dominio\U2
> dominio\U3
> dominio\U4
> dominio\U5
>
> grupos de usuarios
> dominio\G1
> dominio\G2
>
> tal que usuarios U2 y U3 pertenecen a G1 y U4 y U5 a G2
>
> en el servidor SQL (servidor -> base de datos -> Users )
>
> Name Login Name DataBase access
> dbo dominio\U1 permit
> G1 dominio\G1 permit
> G2 dominio\G2 permit
>
>
> asi si desde mi cuenta compruebo el valor de las funciones de usuario
> estas
> me dan:
>
> session_user : dbo
> current_user : dbo
> system_user : dominio\U1
> user : dbo
>
> pero si desde cualquier otra cuenta me da (ejemplo desde U5)
>
> session_user : dominio\U5
> current_user : dominio\U5
> system_user : dominio\U5
> user : dominio\U5
>
> en lugar de
>
> session_user : G2
> current_user : G2
> system_user : dominio\U5
> user : G2
>
>
> y mas gracioso aun es utilizando los sp tal como sp_helpuser
>
> con la sintaxis:
> USE [my_database]
> DECLARE @name_in_db nvarchar (128)
> SELECT @name_in_db = user
> EXEC [dbo].[sp_helpuser] @name_in_db
>
> desde mi cuenta me da correctamente
>
> UserName GroupName LoginName DefName UserID SID
> dbo db_owner dominio\U1 master 1 0x0...
>
> pero desde la cuenta desde cualquier otro usuario el mensaje de error


es:
>
> Server: Msg 15198, Level16, Stage 1, Procedure sp_helpuser, Line 189
> The name supplied (dominio\U5) is not a user, role, or aliased login
>
> devido a que user devuelve U5 en lugar del usuario SQL que es G2
>
>
>
> como puedo entonces hacerlo ??
> hay alguna otra forma de obtener el SID del usuario que se conecta ??
>
> mi intencion en proveer el valor del nombre del grupo de usuario NT en


una
> vista (para interfaces hechos en acess project y html)
>
>
>
> gracias por adelantado
>
>


Respuesta Responder a este mensaje
#3 .·:m·a·r·l·a:·.
04/04/2005 - 18:48 | Informe spam
hola maxi

gracias por la respuesta, pero sigo igual

probe con suser_sname y obtengo el usuario individual, no el login del grupo
de usuarios (U5, no G3, en el ejemplo que comentaba anteriormente)

y para mas inri, pruevo suser_sid y obtengo un sid que no aparece en la
tabla de usuarios del system, (supongo que sea el del usuario U5, pero en la
tabla del systema solo hay sid para G3 como grupo, y no para U5)

tan mal se llevan SQLserver y los grupos de usuarios de NT ???


"Maxi" wrote in message
news:
Hola, has probado con Suser_Sname()


Salu2
Maxi


".·:m·a·r·l·a:·." escribió en el mensaje
news:
> holas a todos
>
> para administrar las autorizaciones en el servidor sql tenemos creados


una
> serie de grupos de dominio NT, de tal forma que cada uno representa un


rol
> mas o menos
>
>
> asi a un usuario SQL (grupo de dominio NT) le damos permisos para


ciertas
> tablas/vistas/sp ...,
>
> y los usuarios individuales los asignamos a estos grupos de dominio
>
> de esta forma mantenemos mas o menos limpio el sql de largas listas de
> usarios
> otra razon es devido a que no somos el mismo grupo de personas los que
> estamos encargados de los servidores SQL y los encargados de las
> autorizaciones de cualquier sistema
>
> la cosa funciona perfectamente hasta que intento recuperar el nombre de
> usuario y grupo del una persona que se conecta al server
>
> como ejemplo
>
> yo:
> dominio\U1
> usuario normales:
> dominio\U2
> dominio\U3
> dominio\U4
> dominio\U5
>
> grupos de usuarios
> dominio\G1
> dominio\G2
>
> tal que usuarios U2 y U3 pertenecen a G1 y U4 y U5 a G2
>
> en el servidor SQL (servidor -> base de datos -> Users )
>
> Name Login Name DataBase access
> dbo dominio\U1 permit
> G1 dominio\G1 permit
> G2 dominio\G2 permit
>
>
> asi si desde mi cuenta compruebo el valor de las funciones de usuario
> estas
> me dan:
>
> session_user : dbo
> current_user : dbo
> system_user : dominio\U1
> user : dbo
>
> pero si desde cualquier otra cuenta me da (ejemplo desde U5)
>
> session_user : dominio\U5
> current_user : dominio\U5
> system_user : dominio\U5
> user : dominio\U5
>
> en lugar de
>
> session_user : G2
> current_user : G2
> system_user : dominio\U5
> user : G2
>
>
> y mas gracioso aun es utilizando los sp tal como sp_helpuser
>
> con la sintaxis:
> USE [my_database]
> DECLARE @name_in_db nvarchar (128)
> SELECT @name_in_db = user
> EXEC [dbo].[sp_helpuser] @name_in_db
>
> desde mi cuenta me da correctamente
>
> UserName GroupName LoginName DefName UserID SID
> dbo db_owner dominio\U1 master 1 0x0...
>
> pero desde la cuenta desde cualquier otro usuario el mensaje de error


es:
>
> Server: Msg 15198, Level16, Stage 1, Procedure sp_helpuser, Line 189
> The name supplied (dominio\U5) is not a user, role, or aliased login
>
> devido a que user devuelve U5 en lugar del usuario SQL que es G2
>
>
>
> como puedo entonces hacerlo ??
> hay alguna otra forma de obtener el SID del usuario que se conecta ??
>
> mi intencion en proveer el valor del nombre del grupo de usuario NT en


una
> vista (para interfaces hechos en acess project y html)
>
>
>
> gracias por adelantado
>
>


Respuesta Responder a este mensaje
#4 .·:m·a·r·l·a:·.
12/04/2005 - 09:48 | Informe spam
hola maxi

consegui solucionarlo , pero no usando suser_sname
si no haciendo comprovaciones con is_member in un case que me cubra los
casos en los que estoy interesado

de todas formas, gracias por la info

"Maxi" wrote in message
news:
Hola, has probado con Suser_Sname()


Salu2
Maxi


".·:m·a·r·l·a:·." escribió en el mensaje
news:
> holas a todos
>
> para administrar las autorizaciones en el servidor sql tenemos creados


una
> serie de grupos de dominio NT, de tal forma que cada uno representa un


rol
> mas o menos
>
>
> asi a un usuario SQL (grupo de dominio NT) le damos permisos para


ciertas
> tablas/vistas/sp ...,
>
> y los usuarios individuales los asignamos a estos grupos de dominio
>
> de esta forma mantenemos mas o menos limpio el sql de largas listas de
> usarios
> otra razon es devido a que no somos el mismo grupo de personas los que
> estamos encargados de los servidores SQL y los encargados de las
> autorizaciones de cualquier sistema
>
> la cosa funciona perfectamente hasta que intento recuperar el nombre de
> usuario y grupo del una persona que se conecta al server
>
> como ejemplo
>
> yo:
> dominio\U1
> usuario normales:
> dominio\U2
> dominio\U3
> dominio\U4
> dominio\U5
>
> grupos de usuarios
> dominio\G1
> dominio\G2
>
> tal que usuarios U2 y U3 pertenecen a G1 y U4 y U5 a G2
>
> en el servidor SQL (servidor -> base de datos -> Users )
>
> Name Login Name DataBase access
> dbo dominio\U1 permit
> G1 dominio\G1 permit
> G2 dominio\G2 permit
>
>
> asi si desde mi cuenta compruebo el valor de las funciones de usuario
> estas
> me dan:
>
> session_user : dbo
> current_user : dbo
> system_user : dominio\U1
> user : dbo
>
> pero si desde cualquier otra cuenta me da (ejemplo desde U5)
>
> session_user : dominio\U5
> current_user : dominio\U5
> system_user : dominio\U5
> user : dominio\U5
>
> en lugar de
>
> session_user : G2
> current_user : G2
> system_user : dominio\U5
> user : G2
>
>
> y mas gracioso aun es utilizando los sp tal como sp_helpuser
>
> con la sintaxis:
> USE [my_database]
> DECLARE @name_in_db nvarchar (128)
> SELECT @name_in_db = user
> EXEC [dbo].[sp_helpuser] @name_in_db
>
> desde mi cuenta me da correctamente
>
> UserName GroupName LoginName DefName UserID SID
> dbo db_owner dominio\U1 master 1 0x0...
>
> pero desde la cuenta desde cualquier otro usuario el mensaje de error


es:
>
> Server: Msg 15198, Level16, Stage 1, Procedure sp_helpuser, Line 189
> The name supplied (dominio\U5) is not a user, role, or aliased login
>
> devido a que user devuelve U5 en lugar del usuario SQL que es G2
>
>
>
> como puedo entonces hacerlo ??
> hay alguna otra forma de obtener el SID del usuario que se conecta ??
>
> mi intencion en proveer el valor del nombre del grupo de usuario NT en


una
> vista (para interfaces hechos en acess project y html)
>
>
>
> gracias por adelantado
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida