You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[!INCLUDE [SQL Server Azure SQL Database Synapse Analytics PDW](../../includes/applies-to-version/sql-asdb-asdbmi-asa-pdw.md)]
24
24
@@ -35,7 +35,7 @@ GO
35
35
36
36
However, if the user has no permission on `myTable`, the query returns an empty result set.
37
37
38
-
## Scope and Impact of Metadata Visibility Configuration
38
+
## Scope and impact of metadata visibility configuration
39
39
40
40
Metadata visibility configuration only applies to the following securables:
41
41
@@ -58,9 +58,7 @@ Metadata visibility configuration doesn't apply to the following securables:
58
58
Limited metadata accessibility means the following:
59
59
60
60
- Queries on system views might only return a subset of rows, or sometimes an empty result set.
61
-
62
61
- Metadata-emitting, built-in functions such as OBJECTPROPERTYEX might return `NULL`.
63
-
64
62
- The [!INCLUDE [ssDE](../../includes/ssde-md.md)]`sp_help` stored procedures might return only a subset of rows, or `NULL`.
65
63
- As a result, applications that assume **public** metadata access will break.
66
64
@@ -98,7 +96,7 @@ GO
98
96
> [!NOTE]
99
97
> 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).
100
98
101
-
## Benefits and Limits of Metadata Visibility Configuration
99
+
## Benefits and limits of metadata visibility configuration
102
100
103
101
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.
104
102
@@ -147,7 +145,7 @@ The following metadata isn't subject to forced disclosure:
147
145
> [!NOTE]
148
146
> The system stored procedure `sp_helptext` isn't supported in Azure Synapse Analytics. Instead, use the `sys.sql_modules` object catalog view.
149
147
150
-
## General Principles of Metadata Visibility
148
+
## General principles of metadata visibility
151
149
152
150
The following are some general principles to consider regarding metadata visibility:
153
151
@@ -159,11 +157,11 @@ The following are some general principles to consider regarding metadata visibil
159
157
160
158
- Visibility of subcomponent metadata
161
159
162
-
### Fixed Roles and Implicit Permissions
160
+
### Fixed roles and implicit permissions
163
161
164
162
Metadata that can be accessed by fixed roles depends upon their corresponding implicit permissions.
165
163
166
-
### Scope of Permissions
164
+
### Scope of permissions
167
165
168
166
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).
169
167
@@ -178,7 +176,7 @@ Additionally, if a user is denied **EXECUTE** permission on a schema but has bee
178
176
179
177
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.
180
178
181
-
### Visibility of Subcomponent Metadata
179
+
### Visibility of subcomponent metadata
182
180
183
181
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).
184
182
@@ -215,7 +213,7 @@ DROP TABLE t1
215
213
DROPUSER testUser
216
214
```
217
215
218
-
#### Metadata That Is Accessible to All Database Users
216
+
#### Metadata that is accessible to all database users
219
217
220
218
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.
0 commit comments