Moví una base de datos de SQL Server 2012 a Azure. No quiero usar el usuario master
, así que creé un usuario test
. 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 test
acceda a la base de datos XXX?
sql-server
azure-sql-database
Viejo viejo
fuente
fuente
Respuestas:
Creo que el problema es que el usuario tiene privilegios denegados . 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.
Otorgue al usuario permisos específicos como SELECT, INSERT, UPDATE y DELETE en las tablas de esa base de datos.
fuente
Properties
.Membership
.Asegúrate de desmarcar
db_denydatareader
db_denydatawriter
Esto debería ser evidente, pero solo otorgue los permisos a lo que el usuario necesita. Una solución fácil y perezosa es verificar
db_owner
como lo hice yo, pero esta no es la mejor práctica de seguridad.fuente
deny
demasiadoLa sintaxis para otorgar permiso de selección en una tabla específica:
USE YourDB; GRANT SELECT ON dbo.functionName TO UserName;
Para otorgar el permiso de selección en todas las tablas de la base de datos:
USE YourDB; GRANT SELECT TO UserName;
fuente
Así es como pude resolver el problema cuando lo enfrenté.
fuente
db_denydatareade
odb_denydatawriter
Se necesitan conceder permisos para ese usuario
fuente
Compruebe el espacio de su base de datos. Este error se produce cuando el espacio aumenta en comparación con el espacio asignado a la base de datos.
fuente
Usando SSMS, me aseguré de que el usuario tuviera permisos de conexión tanto en la base de datos como en ReportServer.
En la base de datos específica que se está consultando, en propiedades, asigné sus credenciales y habilité el lector de datos y los permisos públicos. Además, como han dicho otros, me aseguré de que no se seleccionaran casillas de denegar lectura / denegar escritura.
No quería habilitar la propiedad de la base de datos cuando para sus informes, ya que solo necesitaban tener permisos seleccionados.
fuente
Resuelvo mi problema haciendo esto. [NOTA IMPORTANTE: Permite privilegios escalados (expandidos) a la cuenta en particular, posiblemente más de los necesarios para un escenario individual].
fuente
Puede ser que su panel de Plesk u otro panel de suscripción haya caducado ... por favor verifique Fin de suscripción.
fuente