The SELECT permission was denied on the object 'Address', database 'CNET_85731', schema 'dbo'

后端 未结 6 1807
夕颜
夕颜 2020-12-29 23:06

I have been working away for the last 7 months on a C# ASP.NET using Visual Studio 2008 and SQL Server 2008.

Today, I was running part of my application which was pr

相关标签:
6条回答
  • 2020-12-29 23:15

    If it gives you that error within SQL server Management Studio then just run the SQL server Management Studio as administrator that should work.

    0 讨论(0)
  • 2020-12-29 23:23

    In your SQL Server Management Studio, right click on your database, then click permission, then select the user, then grant select,edit,update and delete. Source http://go4answers.webhost4life.com/Example/select-permission-denied-object-159536.aspx

    0 讨论(0)
  • 2020-12-29 23:27

    Well I'm not sure what the root cause was for the SELECT permission denied for your db user but if you run this and then it does indeed work again, then somewhere along the line, your SELECT permission was indeed wiped out.

    GRANT SELECT ON [dbo].[Address] TO [your user name here]
    

    The good news is that permissions don't magically disappear; the bad news is something (either tooling or otherwise) did indeed either remove or revoke permissions.

    I don't think we have enough information to answer your question as to "why" it happened -- although, none of what you posted appears to be the culprit.

    0 讨论(0)
  • 2020-12-29 23:28

    As problem states, "The SELECT permission was denied on the object 'Address', database 'CNET_85731', schema 'dbo' ".

    I wonder you can quite simply solve this way:

    • Open SQL Server Management studio
    • Navigate to the database 'CNET_85731' >> Security >> Users
    • Right click on the one which you are using in your code
    • And finally, just select 'db_datareader' inside "Database Role membership" section.

    Now, I hope you should not get this error again.

    0 讨论(0)
  • 2020-12-29 23:29

    Had a quick google, found this link Link

    It suggests running

    select object_name(major_id) as object,
     user_name(grantee_principal_id) as grantee,
     user_name(grantor_principal_id) as grantor,
     permission_name,
     state_desc
    from sys.database_permissions
     where major_id = object_id('Users')
     and class = 1
    

    On your database to see what permissions exist, as you may have a DENY select

    Edit

    select object_name(major_id) as object,
     user_name(grantee_principal_id) as grantee,
     user_name(grantor_principal_id) as grantor,
     permission_name,
     state_desc
    from sys.database_permissions
     WHERE state_desc = 'DENY'
    

    Managed to find a running SQL 2k8 box, and ran it, this new query will show all the deny's. Also try taking the WHERE clause out, to see all the permissions on all tables in the currently selected Database

    0 讨论(0)
  • 2020-12-29 23:30

    Remove the following part of your connection string;

    In‌​tegrated Security=True;

    And everything works fine for me.

    0 讨论(0)
提交回复
热议问题