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
Leer las respuestas