---
title: "sys.security_predicates (Transact-SQL) | Microsoft Docs"
ms.custom: ""
ms.date: "06/10/2016"
ms.prod: sql
ms.prod_service: "database-engine, sql-database"
ms.component: "system-catalog-views"
ms.reviewer: ""
ms.suite: "sql"
ms.technology: system-objects
ms.tgt_pltfrm: ""
ms.topic: "language-reference"
applies_to:
- "Azure SQL Database"
- "SQL Server 2016 Preview"
f1_keywords:
- "SYS.SECURITY_PREDICATES"
- "SECURITY_PREDICATES"
- "SECURITY_PREDICATES_TSQL"
- "SYS.SECURITY_PREDICATES_TSQL"
dev_langs:
- "TSQL"
helpviewer_keywords:
- "sys.security_predicates catalog view"
- "security_predicates catalog view"
ms.assetid: c7a2f28c-98da-463d-8b8a-8e5619e2c6a6
caps.latest.revision: 9
author: edmacauley
ms.author: edmaca
manager: craigg
monikerRange: "= azuresqldb-current || >= sql-server-2016 || = sqlallproducts-allversions"
---
# sys.security_predicates (Transact-SQL)
[!INCLUDE[tsql-appliesto-ss2016-asdb-xxxx-xxx-md](../../includes/tsql-appliesto-ss2016-asdb-xxxx-xxx-md.md)]
Returns a row for each security predicate in the database.
|Column name|Data type|Description|
|-----------------|---------------|-----------------|
|object_id|**int**|ID of the security policy that contains this predicate.|
|security_predicate_id|**int**|Predicate ID within this security policy.|
|target_object_id|**int**|ID of the object on which the security predicate is bound.|
|predicate_definition|**nvarchar(max)**|Fully qualified name of the function that will be used as a security predicate, including the arguments. Note that the `schema.function` name may be normalized (i.e. escaped) as well as any other element in the text for consistency. For example:
`[dbo].[fn_securitypredicate]([wing], [startTime], [endTime])`|
|predicate_type|**int**|The type of predicate used by the security policy:
0 = FILTER PREDICATE
1 = BLOCK PREDICATE|
|predicate_type_desc|**nvarchar(60)**|The type of predicate used by the security policy:
FILTER
BLOCK|
|operation|**int**|The type of operation specified for the predicate:
NULL = all applicable operations
1 = AFTER INSERT
2 = AFTER UPDATE
3 = BEFORE UPDATE
4 = BEFORE DELETE|
|operation_desc|**nvarchar(60)**|The type of operation specified for the predicate:
NULL
AFTER INSERT
AFTER UPDATE
BEFORE UPDATE
BEFORE DELETE|
## Permissions
Principals with the **ALTER ANY SECURITY POLICY** permission have access to all objects in this catalog view as well as anyone with **VIEW DEFINITION** on the object.
## See Also
[Row-Level Security](../../relational-databases/security/row-level-security.md)
[sys.security_policies (Transact-SQL)](../../relational-databases/system-catalog-views/sys-security-policies-transact-sql.md)
[CREATE SECURITY POLICY (Transact-SQL)](../../t-sql/statements/create-security-policy-transact-sql.md)
[Security Catalog Views (Transact-SQL)](../../relational-databases/system-catalog-views/security-catalog-views-transact-sql.md)
[Catalog Views (Transact-SQL)](../../relational-databases/system-catalog-views/catalog-views-transact-sql.md)
[Principals (Database Engine)](../../relational-databases/security/authentication-access/principals-database-engine.md)