una transacciones tabla supported saber quien not name modifico historial detener consulta como cerrar cambios and abiertas sql-server azure-sql-database

sql server - transacciones - El permiso SELECT fue denegado en el objeto ''Usuarios'', base de datos ''XXX'', esquema ''dbo''



historial de cambios en sql server (7)

  1. Abrir SQL Management Studio
  2. Expande tu base de datos
  3. Expandir la carpeta "Seguridad"
  4. Expandir "Usuarios"
  5. Haga clic derecho en el usuario (el que está tratando de realizar la consulta)
  6. Asegúrate de desmarcar

    db_denydatareader

    db_denydatawriter

Esto debería ser evidente, pero solo otorgar los permisos a lo que el usuario necesita. Una solución perezosa fácil es verificar db_owner como lo he hecho, pero esta no es la mejor práctica de seguridad.

Trasladé una base de datos de SQL Server 2012 a Azure. No quiero usar el master usuarios, así que creé una test usuario. Esto es lo que hice para la base de datos XXX en Azure:

create user test from login test with default_schema=[dbo] exec sp_addrolemember ''db_owner'',''test''

Lo verifiqué, y los objetos de la base de datos que me interesan están todos en el esquema dbo . La tabla Users está en el esquema dbo .

La cadena de conexión en mi proyecto web tiene test como inicio de sesión. Produce el mensaje de error:

The SELECT permission was denied on the object ''Users'', database ''XXX'', schema ''dbo''

¿Qué significa el mensaje de error y qué puedo hacer para permitir que el usuario haga una test acceso a la base de datos XXX?


Así fue como pude resolver el problema cuando lo enfrenté

  1. Inicie SQL Management Studio.
  2. Expanda el nodo del servidor (en el ''Explorador de objetos'').
  3. Expanda el Nodo de bases de datos y luego expanda la Base de datos específica a la que intenta acceder utilizando el usuario específico.
  4. Expanda el nodo Usuarios bajo el nodo Seguridad para la base de datos.
  5. Haga clic derecho en el usuario específico y haga clic en ''propiedades''. Obtendrá un cuadro de diálogo.
  6. Asegúrese de que el usuario sea miembro del grupo db_owner (lea los comentarios a continuación antes de usar esta ruta) y otros cambios necesarios usando la vista. (Utilicé esto para 2016. No estoy seguro de cómo se ve el diálogo específico en otra versión y por lo tanto no es específico)

Creo que el problema es que el usuario tiene privilegios de denegación . Este error se produce cuando el usuario que ha creado no tiene los privilegios suficientes para acceder a sus tablas en la base de datos. Otorgue el privilegio al usuario para obtener lo que desea.

GRANT los permisos específicos del usuario tales como SELECCIONAR, INSERTAR, ACTUALIZAR y BORRAR en las tablas en esa base de datos.


La sintaxis para otorgar el permiso de selección es:

USE YourDB; GRANT SELECT ON dbo.functionName TO UserName;


Resuelvo mi problema haciendo esto. [NOTA IMPORTANTE: permite privilegios escalados (expandidos) para la cuenta en particular, posiblemente más de lo necesario para un escenario individual].

  1. Vaya a '' Object Explorer '' de SQL Management Studio.
  2. Expanda Seguridad , luego inicie sesión .
  3. Seleccione el usuario con el que está trabajando, luego haga clic con el botón derecho y seleccione Propiedades .
  4. En Seleccione una página , vaya a Funciones de servidor
  5. Haga clic en sysadmin y guardar.

Se necesitan permisos para ese usuario


Verifique el espacio de su base de datos. Este error se produce cuando aumenta el espacio en comparación con el espacio asignado a la base de datos.