Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I moved a database from SQL Server 2012 to Azure. I don't want to use the user master, so I created a user test. This is what I did for database XXX on Azure:

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

I checked, and the database objects I am interested in are all in the schema dbo. The table Users is in the schema dbo.

The connection string in my web project has test as the login. It produces the error message:

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

What does the error message mean and what can I do to let user test access the database XXX?

like image 557
Old Geezer Avatar asked Oct 12 '13 12:10

Old Geezer


People also ask

What is references permission SQL Server?

The REFERENCES permission on a table is needed to create a FOREIGN KEY constraint that references that table. The REFERENCES permission is needed on an object to create a FUNCTION or VIEW with the WITH SCHEMABINDING clause that references that object.


2 Answers

  1. Open SQL Management Studio
  2. Expand your database
  3. Expand the "Security" Folder
  4. Expand "Users"
  5. Right click the user (the one that's trying to perform the query) and select Properties.
  6. Select page Membership.
  7. Make sure you uncheck

    db_denydatareader

    db_denydatawriter

enter image description here

This should go without saying, but only grant the permissions to what the user needs. An easy lazy fix is to check db_owner like I have, but this is not the best security practice.

like image 98
Kellen Stuart Avatar answered Oct 04 '22 02:10

Kellen Stuart


I think the problem is with the user having deny privileges. This error comes when the user which you have created does not have the sufficient privileges to access your tables in the database. Do grant the privilege to the user in order to get what you want.

GRANT the user specific permissions such as SELECT, INSERT, UPDATE and DELETE on tables in that database.

like image 42
Rahul Tripathi Avatar answered Oct 04 '22 01:10

Rahul Tripathi