Skip to content

Commit e8c20fe

Browse files
Merge pull request #34871 from VanMSFT/20250801_updateMeta
fixing header casing
2 parents 95a100a + caa1304 commit e8c20fe

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

docs/relational-databases/security/metadata-visibility-configuration.md

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ helpviewer_keywords:
1818
- "metadata [SQL Server], permissions"
1919
monikerRange: ">=aps-pdw-2016 || =azuresqldb-current || =azure-sqldw-latest || >=sql-server-2016 || >=sql-server-linux-2017 || =azuresqldb-mi-current"
2020
---
21-
# Metadata Visibility Configuration
21+
# Metadata visibility configuration
2222

2323
[!INCLUDE [SQL Server Azure SQL Database Synapse Analytics PDW](../../includes/applies-to-version/sql-asdb-asdbmi-asa-pdw.md)]
2424

@@ -35,7 +35,7 @@ GO
3535

3636
However, if the user has no permission on `myTable`, the query returns an empty result set.
3737

38-
## Scope and Impact of Metadata Visibility Configuration
38+
## Scope and impact of metadata visibility configuration
3939

4040
Metadata visibility configuration only applies to the following securables:
4141

@@ -58,9 +58,7 @@ Metadata visibility configuration doesn't apply to the following securables:
5858
Limited metadata accessibility means the following:
5959

6060
- Queries on system views might only return a subset of rows, or sometimes an empty result set.
61-
6261
- Metadata-emitting, built-in functions such as OBJECTPROPERTYEX might return `NULL`.
63-
6462
- The [!INCLUDE [ssDE](../../includes/ssde-md.md)] `sp_help` stored procedures might return only a subset of rows, or `NULL`.
6563
- As a result, applications that assume **public** metadata access will break.
6664

@@ -98,7 +96,7 @@ GO
9896
> [!NOTE]
9997
> You can use EXECUTE AS to temporarily switch to the security context of the caller. For more information, see [EXECUTE AS (Transact-SQL)](../../t-sql/statements/execute-as-transact-sql.md).
10098
101-
## Benefits and Limits of Metadata Visibility Configuration
99+
## Benefits and limits of metadata visibility configuration
102100

103101
Metadata visibility configuration can play an important role in your overall security plan. However, there are cases in which a skilled and determined user can force the disclosure of some metadata. We recommend that you deploy metadata permissions as one of many defenses-in-depth.
104102

@@ -147,7 +145,7 @@ The following metadata isn't subject to forced disclosure:
147145
> [!NOTE]
148146
> The system stored procedure `sp_helptext` isn't supported in Azure Synapse Analytics. Instead, use the `sys.sql_modules` object catalog view.
149147
150-
## General Principles of Metadata Visibility
148+
## General principles of metadata visibility
151149

152150
The following are some general principles to consider regarding metadata visibility:
153151

@@ -159,11 +157,11 @@ The following are some general principles to consider regarding metadata visibil
159157

160158
- Visibility of subcomponent metadata
161159

162-
### Fixed Roles and Implicit Permissions
160+
### Fixed roles and implicit permissions
163161

164162
Metadata that can be accessed by fixed roles depends upon their corresponding implicit permissions.
165163

166-
### Scope of Permissions
164+
### Scope of permissions
167165

168166
Permissions at one scope imply the ability to see metadata at that scope and at all enclosed scopes. For example, **SELECT** permission on a schema implies that the grantee has **SELECT** permission on all securables that are contained by that schema. The granting of **SELECT** permission on a schema therefore enables a user to see the metadata of the schema and also all tables, views, functions, procedures, queues, synonyms, types, and XML schema collections within it. For more information about scopes, see [Permissions Hierarchy (Database Engine)](../../relational-databases/security/permissions-hierarchy-database-engine.md).
169167

@@ -178,7 +176,7 @@ Additionally, if a user is denied **EXECUTE** permission on a schema but has bee
178176

179177
For another example, if a user has been granted and denied **EXECUTE** permission on a stored procedure, which is possible through your various role memberships, **DENY** takes precedence and the user can't view the metadata of the stored procedure.
180178

181-
### Visibility of Subcomponent Metadata
179+
### Visibility of subcomponent metadata
182180

183181
The visibility of subcomponents, such as indexes, check constraints, and triggers are determined by permissions on the parent. These subcomponents don't have grantable permissions. For example, if a user has been granted some permission on a table, the user can view the metadata for the tables, columns, indexes, check constraints, triggers, and other such subcomponents. Another example is granting **SELECT** on only an individual column of a given table: this will allow the grantee to view the metadata of the whole table, including all columns. One way to think of it, is that the **VIEW DEFINITION** permission only works on entity-level (the table in this case) and isn't available for Subentity lists (such as column or security expressions).
184182

@@ -215,7 +213,7 @@ DROP TABLE t1
215213
DROP USER testUser
216214
```
217215

218-
#### Metadata That Is Accessible to All Database Users
216+
#### Metadata that is accessible to all database users
219217

220218
Some metadata must be accessible to all users in a specific database. For example, filegroups don't have conferrable permissions; therefore, a user can't be granted permission to view the metadata of a filegroup. However, any user that can create a table must be able to access filegroup metadata to use the ON *filegroup* or TEXTIMAGE_ON *filegroup* clauses of the CREATE TABLE statement.
221219

0 commit comments

Comments
 (0)