Pregunta

En una aplicación ASP.NET WebForms me gustaría permitir que el usuario final para examinar los datos en bruto seleccionados en una base de datos SQL-servidor.

Sin embargo, me gustaría restringir el acceso para el usuario a la vista de sólo algunos de los datos basándose en el nombre de usuario.

No estoy seguro de cómo hacer esto de una manera que es posible que el usuario entienda, ya que SQL no es necesariamente conocida por el usuario.

¿Qué opciones tengo aquí?


Como base para esto he considerado la creación de una función de SQL por tabla en cuestión. Esa función debe devolver los datos que el usuario está autorizado para ver, por ejemplo.,

CREATE FUNCTION ufn_RawData_Employee(@username nvarchar(256))
RETURNS TABLE
AS ( SELECT * FROM Employee 
  WHERE [@username is allowed to view the given Employee] )

En una página web que el usuario final puede a continuación, escriba una instrucción SQL similar a como

SELECT Name, HireDate FROM ((Employee))

donde (([TableName])) entonces podría ser sustituido por ufn_RawData_[TableName]([UserName]) antes de llamar a la base de datos. (Por razones de seguridad tales llamadas a continuación, podrían ser realizadas por un usuario sql cuya solamente permisos son permisos SELECT para estas funciones.)

Sin embargo, este enfoque podría ser demasiado difícil para el usuario final. Me gustaría saber si existe una solución más fácil / más amigable con el usuario para el usuario final para buscar datos en bruto seleccionados?

¿Fue útil?

Solución

Si sólo se están mostrando los datos de usuario de una tabla o una vista (lo que probablemente sería más útil), entonces sí se podría almacenar el nombre de esa visión en una tabla y recuperarlo con una función. A continuación, puede mostrar los datos en páginas, y asegúrese de que las secuencias de comandos de selección estándar han construido en la función de búsqueda si es necesario.

No hay necesidad de que el usuario escriba SQL si sólo están recibiendo datos de una tabla o vista. Si necesita proporcionar múltiples potenciales tablas / vistas, entonces que elegir entre un menú desplegable, pero no suena la pena para que puedan escribir sus propias consultas SQL.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top