none
DENEGAR LA CONSULTA : SELECT 1 RRS feed

  • Pregunta

  •  Hola a todos,

    existe una aplicación que está ejecutando un SELECT 1 hacia la base de datos

    quiero denegarle, restringirle no permitirle que ejecute exclusivamente esa sencencia

    cómo puedo lograr eso?

    tengo SQL SERVER 2014 Enterprise edition

    muchas gracias por sus comentarios

    PD

    puedo ir con el prOGRAMADOR Y PEDIRLE QUE NO LA EJECUTE, PERO ANTES, YO COMO DBA QUIERO TENER EL CONOCIMIENTO DE PODER HACERLO


    saludos

    viernes, 24 de junio de 2016 14:35

Respuestas

  • Estimado:

    Lo que solicitas es complejo, puede ser que realices una traza de base de datos, con el fin de identificar en que momento se dispara esa consulta, y puede ocurrir que sea parte de un renglon en la traza, pero que en la fila inmediatamente inferior aparezca a quien le esta haciendo el select; ya que a veces como desarrolladores utilizamos sentencias como:

    IF EXISTS (SELECT 1 
    FROM myTable WHERE myCondition)
    BEGIN
    	SELECT 1 as uno
    END

    Lo otro que se me ocurre es generar los scripts de todos los procedimientos almacenados, y con el uso de una software de terceros, como npp buscar en el contenido la ocurrencia de la sentencia que quieres restringir; y de paso le ayudas al desarrollador a optimizar su consulta.

    Saludos cordiales.


    Camilo Villa

    • Marcado como respuesta José De Alva jueves, 30 de junio de 2016 14:50
    viernes, 24 de junio de 2016 21:49

Todas las respuestas

  • Hola: 

    Los permisos son sobre objetos de base de datos, SELECT no lo es. Es un SELECT 1 solamente ? o es un SELECT 1 FROM tabla? Puedes denegar el permiso de SELECT sobre la tabla, sin embargo denegarías todos los SELECTs a dicha tabla.

    SALUDOS!


    SERGIO SANCHEZ ARIAS
    facebook twitter blogger google

    viernes, 24 de junio de 2016 14:51
  • No está realizando el select sobre algún objeto de base de datos, ese el motivo por el cuál les escribo

    la sentencia es un SELECT 1 hacia ningun objeto


    saludos

    viernes, 24 de junio de 2016 16:58
  • No comprendo para que estaría realizando un SELECT 1 desde la aplicación, restringirlo por BD no se si sea posible, pero no veo que opciones tendrías para poder restringirlo.

    SERGIO SANCHEZ ARIAS
    facebook twitter blogger google

    viernes, 24 de junio de 2016 17:11
  •     Aunque el programador no encuentre la sentencia que lo genera en todo su código, yo como titular de base de datos debería poder restringirla, debería denegarla, ya nada mas es mero orgullo, 

    como de que no se puede?

    tal vez alguien de aqui se sepa hacerlo como no!


    saludos

    viernes, 24 de junio de 2016 17:29
  • No creo que se pueda.. Lo unico que se me ocurre es que encriptes los datos en la Base de Datos, por tal motivo al momento de hacer la Consulta le saldran datos encriptados, pero eso tambien implicaria que a ti te van a salir de la misma forma en tus Select, seria un arduo trabajo ir cambiandolos uno a uno si llegas a tener muchos

    Jhonatan Plata http://kayprogramacion.blogspot.com/

    viernes, 24 de junio de 2016 17:30
  • Estimado:

    Lo que solicitas es complejo, puede ser que realices una traza de base de datos, con el fin de identificar en que momento se dispara esa consulta, y puede ocurrir que sea parte de un renglon en la traza, pero que en la fila inmediatamente inferior aparezca a quien le esta haciendo el select; ya que a veces como desarrolladores utilizamos sentencias como:

    IF EXISTS (SELECT 1 
    FROM myTable WHERE myCondition)
    BEGIN
    	SELECT 1 as uno
    END

    Lo otro que se me ocurre es generar los scripts de todos los procedimientos almacenados, y con el uso de una software de terceros, como npp buscar en el contenido la ocurrencia de la sentencia que quieres restringir; y de paso le ayudas al desarrollador a optimizar su consulta.

    Saludos cordiales.


    Camilo Villa

    • Marcado como respuesta José De Alva jueves, 30 de junio de 2016 14:50
    viernes, 24 de junio de 2016 21:49