2010-12-09 20 views
8

Tengo una aplicación que solo debe permitir el acceso a los usuarios que son administradores del sistema en la base de datos. ¿Qué secuencia de comandos SQL o una consulta puedo ejecutar desde el código C# que, dado un nombre de usuario, puede determinar si él/ella tiene privilegios de administrador del sistema especificaciones del sistema: sql2008R2 db, .net 2.0, C#cómo verificar si el usuario tiene privilegios de administración del sistema en SQL Server 2008 R2

Respuesta

5

Uso IS_SRVROLEMEMBER.

SELECT IS_SRVROLEMEMBER('sysadmin', 'YourLogin') 
+3

Esta solución no proporciona el resultado correcto si la cuenta es miembro de algún grupo que está en la función sysadmin. DOMAIN \ user1 es un miembro de DOMAIN \ DBAs, DOMAIN \ DBAs está en la función sysadmin, por lo tanto DOMAIN \ user1 es sysadmin. Al marcar SELECCIONAR IS_SRVROLEMEMBER ('sysadmin', 'DOMAIN \ user1') se obtendrá NULL. – meir

+0

@meir - ¿cuál es la consulta correcta? – Steam

+0

La consulta de Joe me da 1 y la consulta de los meres me da NULL. – Steam

Cuestiones relacionadas