I'm having an issue setting the VIEW DEFINITION
permission appropriately at the schema level for one of my users. I've created the schema TestSchema
and added some tables. The user currently has permissions set to access & modify the table (SELECT
, UPDATE
, DELETE
, etc) through the dbo_datareader
and dbo_datawriter
roles. However, they cannot see any of the tables in the SSMS object explorer.
I've tried granting permissions to view definitions:
grant view definition on SCHEMA :: [TestSchema] to [User]
That didn't work. I tried setting the table-level permission:
grant view definition on [TestSchema].[NewTable] to [User]
That also didn't work. Then I tried just a blanket grant:
grant view definition to [User]
And that did work; they can now see TestSchema
, as well as other schemas that they shouldn't have access to.
My goal here is to allow the user to view all tables within a given schema. How do I accomplish that? If I should be able to do this by default, what permissions should I be looking at to find why I can't?