Hide databases in Enterprise manager

  • Is there a way to have databases that a user doesn't have access to be hidden in the Enterprise manager (and Query optimizer)? We offer SQL Server hosting and want to prevent customers from seeing the names of other customers databases on the shared server.

    Thanks for any ideas...

  • There have been threads on this but I cannot find them. Anyway to the best of my knowledge there is no way. The information comes from sysdatabases in master from what I remember and I thought I recalled someone stating set them up with denied access on that table but I just tried with a test account and had no effect. Not sure what also granting into master within public role may give access to if anything in that situation either (I don't think anything new but if deny doesn't work then why have set that way).

  • SQL Server won't try and query on sysdatabases directly, but rather does so through a stored procedure. As a result, even if you DENY SELECT, SQL Server gets in this way: sp_MSdbuseraccess. Now this stored procedure does make a dynamic SQL query against sysdatabases in order to establish a global cursor, which is why you will see the exception errors in profiled.

    Revoking or denying permission to it means that no database will show up. Of course,you may be able to modify this stored procedure, but remember, it'll be considered an unsupported change by Microsoft.

    K. Brian Kelley

    http://www.truthsolutions.com/

    Author: Start to Finish Guide to SQL Server Performance Monitoring

    http://www.netimpress.com/shop/product.asp?ProductID=NI-SQL1

    Edited by - bkelley on 02/10/2003 07:46:41 AM

    K. Brian Kelley
    @kbriankelley

Viewing 3 posts - 1 through 3 (of 3 total)

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