Sé que podemos verificar los inicios de sesión y los usuarios que están definidos, usando la GUI en SQL Server, pero me pregunto cómo podemos hacer esta verificación usando el script.
Ejecuté la consulta a continuación, pero muestra Principal_id, que no estoy seguro de cómo asignar para obtener el nivel de permiso.
SELECT * FROM Sys.login_token
Entonces, ¿hay algún proceso almacenado incorporado que pueda enumerar los inicios de sesión y los usuarios con su nivel de permiso ?
Gracias.
Respuestas:
No estoy seguro de si hay una forma integrada, pero pruebe esta consulta para los principales del servidor:
Básicamente, lo que hace es obtener los permisos otorgados y denegados, y los une con el rol de miembro. Debería darle una breve mirada sobre la seguridad para los inicios de sesión del servidor. Avísame si eso es lo que estás buscando.
fuente
CAST([srvperm].[state_desc] AS VARCHAR(MAX)) + ' ' + CAST(srvperm.[permission_name] AS VARCHAR(MAX)) + ' TO [' + CAST(srvprin.name AS VARCHAR(MAX)) + '];' as GrantQuery
que ayuda a replicar esos permisos si está migrando un servidor :)Pruebe este: enumerará los usuarios, los objetos y los permisos que tienen sobre esos objetos:
También debe consultar la función sys.fn_my_permissions:
http://msdn.microsoft.com/en-us/library/ms188367.aspx
Aquí hay algunos enlaces que deberían ayudarlo también:
PERMISOS: http://msdn.microsoft.com/en-us/library/ms191291.aspx
SYS.DATABASE_PERMISSIONS: http://msdn.microsoft.com/en-us/library/ms188367.aspx
Espero que esto te ayude.
fuente