Help ! Can't login, SELECT permission denied .......

  • Dear all,

    "SELECT permission denied on object 'configurations', database 'mssqlsystemresource', schema 'sys'"

    This morning, I suddenly got this error when I use a SQL Login account to login through SQL 2005 Management Studio, 9.0.2047.

    The login name doesn't have db_owner right but worked properly before.

    I tried to fix the problem by :

    USE master

    GRANT SELECT ON sys.mssqlsystemresource.configurations TO PUBLIC

    but failed :

    Msg 15151, Level 16, State 1, Line 1

    Cannot find the object 'configurations', because it does not exist or you do not have permission.

    Though the problem could be fixed by adding sysadmin right to the user, I don't think it is a proper way to fix the error.

    Any ideals ?

  • Why not sys.configurations?

    Proper qualifier would be database.schema.objectname.

    Run dbcc checkdb. If ok, check the log file, if someone dropped permissions. "public" must have select permission on this system view.

  • Thanks.

    I fixed the problem by myself.

    In fact, what I did was what you suggested.

    Thanks a lot.

  • Thanks for this post. I'm not a DBA - just owner of a few databases on our server. I just experienced this problem the other day - was working in SSMS in the morning, and then I get back from lunch, and kaboom - I couldn't connect through SSMS anymore! My DBA kept telling me "I can see that you're logged-in right now! - what do you mean you can't get in?", but none the less, SSMS kept telling me it couldn't connect... This is the only post I could find anywhere online, help, or my manuals (after 3 days of searching) that had an answer for this specific issue.

    So now that I've just learned of the existence of SQL-Server's "5th" system database, I am curious - if nobody (generally) even knows about it, and it isn't a database that can be restored from backup, how does this kind of accident happen - dropping the public role's permission to stuff on this database? I mean, aside from somebody executing a drop statement on purpose... Have you seen this a lot?

    Oh well - thanks again! I mean, work stoppage was nice while it lasted, but you know...:D

    - dave

  • thanks! It helps in my case on different system table

  • hi,

    i know it is an old thread but i am having the same issue. I tired giving select permission to public on sys.configuration but still getting the same error message

    "The SELECT permission was denied on the object 'configurations', database 'mssqlsystemresource', schema 'sys'. (Microsoft SQL Server, Error: 229)"

    can there be any other reason??

    thanks

  • Non admin users have permissions on sp_configure to view SQL server configs.

    -----------------------------------------------------------------------------------------------------------

    "Ya can't make an omelette without breaking just a few eggs" 😉

  • I had the similar problem.

    I granted SELECT permission to database objects to a group. The users could query the tables, however, they couldn't see the table lists when they tried to expand tables in a database. The error message they were getting:

    "The SELECT permission was denied on the object 'tables', database 'mssqlsystemresource', schema 'sys'."

    When I was searching in Google, I found this article and executed the following query.

    USE master

    GO

    GRANT SELECT ON [mssqlsystemresource].[sys].[tables] TO PUBLIC

    GO

    I However, received the following error:

    "Cannot find the object 'tables', because it does not exist or you do not have permission."

    Then I turned the trace ON and found that when the user tries to expand the table list, it executes a T-SQL batch behind the scene which uses SELECT from the object sys.tables and that is where the error was coming from. Then I ran the following query:

    USE user_DB

    GO

    GRANT SELECT ON [mssqlsystemresource].[sys].[tables] TO PUBLIC

    GO

    It failed again with the error:

    "Cannot find the object 'tables', because it does not exist or you do not have permission."

    Finally, the following query worked:

    USE user_DB

    GO

    GRANT SELECT ON [sys].[tables] TO PUBLIC

    GO

    Glad that it worked finally 🙂

Viewing 8 posts - 1 through 7 (of 7 total)

You must be logged in to reply to this topic. Login to reply