sys.fn_builtin_permissions (Transact-SQL)
Returns a description of the built in permissions hierarchy of the server.
Syntax
sys.fn_builtin_permissions ( [ DEFAULT | NULL ]
| empty_string | '<securable_class>' } )
<securable_class> ::=
APPLICATION ROLE | ASSEMBLY | ASYMMETRIC KEY
| CERTIFICATE | CONTRACT | DATABASE | ENDPOINT | FULLTEXT CATALOG
| LOGIN | MESSAGE TYPE | OBJECT | REMOTE SERVICE BINDING | ROLE
| ROUTE | SCHEMA | SERVER | SERVICE | SYMMETRIC KEY | TYPE
| USER | XML SCHEMA COLLECTION
Arguments
DEFAULT
When it is called with the DEFAULT option, the function will return a complete list of built in permissions.NULL
Equivalent to DEFAULT.empty_string
Equivalent to DEFAULT.'<securable_class>'
When it is called with the name of one securable class, sys.fn_builtin_permissions returns all permissions that apply to the class. <securable_class> is a string literal that requires quotation marks. nvarchar(60)
Tables Returned
Column name |
Data type |
Collation |
Description |
---|---|---|---|
class_desc |
nvarchar(60) |
Collation of the server |
Description of the securable class. |
permission_name |
sysname |
Collation of the server |
Permission name. |
type |
char(4) |
Collation of the server |
Compact permission type code. See the table that follows. |
covering_permission_name |
sysname |
Collation of the server |
If not NULL, this is the name of the permission on this class that implies the other permissions on this class. |
parent_class_desc |
nvarchar(60) |
Collation of the server |
If not NULL, this is the name of the parent class that contains the current class. |
parent_covering_permission_name |
sysname |
Collation of the server |
If not NULL, this is the name of the permission on the parent class that implies all other permissions on that class. |
Compact Permission Types
Permission type |
Permission name |
Applies to securable or class |
---|---|---|
ADBO |
ADMINISTER BULK OPERATIONS |
SERVER |
AL |
ALTER |
APPLICATION ROLE |
AL |
ALTER |
ASSEMBLY |
AL |
ALTER |
ASYMMETRIC KEY |
AL |
ALTER |
CERTIFICATE |
AL |
ALTER |
CONTRACT |
AL |
ALTER |
DATABASE |
AL |
ALTER |
ENDPOINT |
AL |
ALTER |
FULLTEXT CATALOG |
AL |
ALTER |
FULLTEXT STOPLIST |
AL |
ALTER |
LOGIN |
AL |
ALTER |
MESSAGE TYPE |
AL |
ALTER |
OBJECT |
AL |
ALTER |
REMOTE SERVICE BINDING |
AL |
ALTER |
ROLE |
AL |
ALTER |
ROUTE |
AL |
ALTER |
SCHEMA |
AL |
ALTER |
SERVICE |
AL |
ALTER |
SYMMETRIC KEY |
AL |
ALTER |
USER |
AL |
ALTER |
XML SCHEMA COLLECTION |
ALAA |
ALTER ANY SERVER AUDIT |
SERVER |
ALAK |
ALTER ANY ASYMMETRIC KEY |
DATABASE |
ALAR |
ALTER ANY APPLICATION ROLE |
DATABASE |
ALAS |
ALTER ANY ASSEMBLY |
DATABASE |
ALCD |
ALTER ANY CREDENTIAL |
SERVER |
ALCF |
ALTER ANY CERTIFICATE |
DATABASE |
ALCO |
ALTER ANY CONNECTION |
SERVER |
ALDA |
ALTER ANY DATABASE AUDIT |
DATABASE |
ALDB |
ALTER ANY DATABASE |
SERVER |
ALDS |
ALTER ANY DATASPACE |
DATABASE |
ALED |
ALTER ANY DATABASE EVENT NOTIFICATION |
DATABASE |
ALES |
ALTER ANY EVENT NOTIFICATION |
SERVER |
ALFT |
ALTER ANY FULLTEXT CATALOG |
DATABASE |
ALHE |
ALTER ANY ENDPOINT |
SERVER |
ALLG |
ALTER ANY LOGIN |
SERVER |
ALLS |
ALTER ANY LINKED SERVER |
SERVER |
ALMT |
ALTER ANY MESSAGE TYPE |
DATABASE |
ALRL |
ALTER ANY ROLE |
DATABASE |
ALRS |
ALTER RESOURCES |
SERVER |
ALRT |
ALTER ANY ROUTE |
DATABASE |
ALSB |
ALTER ANY REMOTE SERVICE BINDING |
DATABASE |
ALSC |
ALTER ANY CONTRACT |
DATABASE |
ALSK |
ALTER ANY SYMMETRIC KEY |
DATABASE |
ALSM |
ALTER ANY SCHEMA |
DATABASE |
ALSS |
ALTER SERVER STATE |
SERVER |
ALST |
ALTER SETTINGS |
SERVER |
ALSV |
ALTER ANY SERVICE |
DATABASE |
ALTG |
ALTER ANY DATABASE DDL TRIGGER |
DATABASE |
ALTR |
ALTER TRACE |
SERVER |
ALUS |
ALTER ANY USER |
DATABASE |
AUTH |
AUTHENTICATE |
DATABASE |
AUTH |
AUTHENTICATE SERVER |
SERVER |
BADB |
BACKUP DATABASE |
DATABASE |
BALO |
BACKUP LOG |
DATABASE |
CL |
CONTROL |
APPLICATION ROLE |
CL |
CONTROL |
ASSEMBLY |
CL |
CONTROL |
ASYMMETRIC KEY |
CL |
CONTROL |
CERTIFICATE |
CL |
CONTROL |
CONTRACT |
CL |
CONTROL |
DATABASE |
CL |
CONTROL |
ENDPOINT |
CL |
CONTROL |
FULLTEXT CATALOG |
CL |
CONTROL |
FULLTEXT STOPLIST |
CL |
CONTROL |
LOGIN |
CL |
CONTROL |
MESSAGE TYPE |
CL |
CONTROL |
OBJECT |
CL |
CONTROL |
REMOTE SERVICE BINDING |
CL |
CONTROL |
ROLE |
CL |
CONTROL |
ROUTE |
CL |
CONTROL |
SCHEMA |
CL |
CONTROL |
SERVICE |
CL |
CONTROL |
SYMMETRIC KEY |
CL |
CONTROL |
TYPE |
CL |
CONTROL |
USER |
CL |
CONTROL |
XML SCHEMA COLLECTION |
CL |
CONTROL SERVER |
SERVER |
CO |
CONNECT |
DATABASE |
CO |
CONNECT |
ENDPOINT |
CORP |
CONNECT REPLICATION |
DATABASE |
COSQ |
CONNECT SQL |
SERVER |
CP |
CHECKPOINT |
DATABASE |
CRAG |
CREATE AGGREGATE |
DATABASE |
CRAK |
CREATE ASYMMETRIC KEY |
DATABASE |
CRAS |
CREATE ASSEMBLY |
DATABASE |
CRCF |
CREATE CERTIFICATE |
DATABASE |
CRDB |
CREATE ANY DATABASE |
SERVER |
CRDB |
CREATE DATABASE |
DATABASE |
CRDE |
CREATE DDL EVENT NOTIFICATION |
SERVER |
CRDF |
CREATE DEFAULT |
DATABASE |
CRED |
CREATE DATABASE DDL EVENT NOTIFICATION |
DATABASE |
CRFN |
CREATE FUNCTION |
DATABASE |
CRFT |
CREATE FULLTEXT CATALOG |
DATABASE |
CRHE |
CREATE ENDPOINT |
SERVER |
CRMT |
CREATE MESSAGE TYPE |
DATABASE |
CRPR |
CREATE PROCEDURE |
DATABASE |
CRQU |
CREATE QUEUE |
DATABASE |
CRRL |
CREATE ROLE |
DATABASE |
CRRT |
CREATE ROUTE |
DATABASE |
CRRU |
CREATE RULE |
DATABASE |
CRSB |
CREATE REMOTE SERVICE BINDING |
DATABASE |
CRSC |
CREATE CONTRACT |
DATABASE |
CRSK |
CREATE SYMMETRIC KEY |
DATABASE |
CRSM |
CREATE SCHEMA |
DATABASE |
CRSN |
CREATE SYNONYM |
DATABASE |
CRSV |
CREATE SERVICE |
DATABASE |
CRTB |
CREATE TABLE |
DATABASE |
CRTE |
CREATE TRACE EVENT NOTIFICATION |
SERVER |
CRTY |
CREATE TYPE |
DATABASE |
CRVW |
CREATE VIEW |
DATABASE |
CRXS |
CREATE XML SCHEMA COLLECTION |
DATABASE |
DL |
DELETE |
DATABASE |
DL |
DELETE |
OBJECT |
DL |
DELETE |
SCHEMA |
EX |
EXECUTE |
DATABASE |
EX |
EXECUTE |
OBJECT |
EX |
EXECUTE |
SCHEMA |
EX |
EXECUTE |
TYPE |
EX |
EXECUTE |
XML SCHEMA COLLECTION |
IM |
IMPERSONATE |
LOGIN |
IM |
IMPERSONATE |
USER |
IN |
INSERT |
DATABASE |
IN |
INSERT |
OBJECT |
IN |
INSERT |
SCHEMA |
RC |
RECEIVE |
OBJECT |
RF |
REFERENCES |
ASSEMBLY |
RF |
REFERENCES |
ASYMMETRIC KEY |
RF |
REFERENCES |
CERTIFICATE |
RF |
REFERENCES |
CONTRACT |
RF |
REFERENCES |
DATABASE |
RF |
REFERENCES |
FULLTEXT CATALOG |
RF |
REFERENCES |
FULLTEXT STOPLIST |
RF |
REFERENCES |
MESSAGE TYPE |
RF |
REFERENCES |
OBJECT |
RF |
REFERENCES |
SCHEMA |
RF |
REFERENCES |
SYMMETRIC KEY |
RF |
REFERENCES |
TYPE |
RF |
REFERENCES |
XML SCHEMA COLLECTION |
SHDN |
SHUTDOWN |
SERVER |
SL |
SELECT |
DATABASE |
SL |
SELECT |
OBJECT |
SL |
SELECT |
SCHEMA |
SN |
SEND |
SERVICE |
SPLN |
SHOWPLAN |
DATABASE |
SUQN |
SUBSCRIBE QUERY NOTIFICATIONS |
DATABASE |
TO |
TAKE OWNERSHIP |
ASSEMBLY |
TO |
TAKE OWNERSHIP |
ASYMMETRIC KEY |
TO |
TAKE OWNERSHIP |
CERTIFICATE |
TO |
TAKE OWNERSHIP |
CONTRACT |
TO |
TAKE OWNERSHIP |
DATABASE |
TO |
TAKE OWNERSHIP |
ENDPOINT |
TO |
TAKE OWNERSHIP |
FULLTEXT CATALOG |
TO |
TAKE OWNERSHIP |
FULLTEXT STOPLIST |
TO |
TAKE OWNERSHIP |
MESSAGE TYPE |
TO |
TAKE OWNERSHIP |
OBJECT |
TO |
TAKE OWNERSHIP |
REMOTE SERVICE BINDING |
TO |
TAKE OWNERSHIP |
ROLE |
TO |
TAKE OWNERSHIP |
ROUTE |
TO |
TAKE OWNERSHIP |
SCHEMA |
TO |
TAKE OWNERSHIP |
SERVICE |
TO |
TAKE OWNERSHIP |
SYMMETRIC KEY |
TO |
TAKE OWNERSHIP |
TYPE |
TO |
TAKE OWNERSHIP |
XML SCHEMA COLLECTION |
UP |
UPDATE |
DATABASE |
UP |
UPDATE |
OBJECT |
UP |
UPDATE |
SCHEMA |
VW |
VIEW DEFINITION |
APPLICATION ROLE |
VW |
VIEW DEFINITION |
ASSEMBLY |
VW |
VIEW DEFINITION |
ASYMMETRIC KEY |
VW |
VIEW DEFINITION |
CERTIFICATE |
VW |
VIEW DEFINITION |
CONTRACT |
VW |
VIEW DEFINITION |
DATABASE |
VW |
VIEW DEFINITION |
ENDPOINT |
VW |
VIEW DEFINITION |
FULLTEXT CATALOG |
VW |
VIEW DEFINITION |
FULLTEXT STOPLIST |
VW |
VIEW DEFINITION |
LOGIN |
VW |
VIEW DEFINITION |
MESSAGE TYPE |
VW |
VIEW DEFINITION |
OBJECT |
VW |
VIEW DEFINITION |
REMOTE SERVICE BINDING |
VW |
VIEW DEFINITION |
ROLE |
VW |
VIEW DEFINITION |
ROUTE |
VW |
VIEW DEFINITION |
SCHEMA |
VW |
VIEW DEFINITION |
SERVICE |
VW |
VIEW DEFINITION |
SYMMETRIC KEY |
VW |
VIEW DEFINITION |
TYPE |
VW |
VIEW DEFINITION |
USER |
VW |
VIEW DEFINITION |
XML SCHEMA COLLECTION |
VWCT |
VIEW CHANGE TRACKING |
OBJECT |
VWCT |
VIEW CHANGE TRACKING |
SCHEMA |
VWAD |
VIEW ANY DEFINITION |
SERVER |
VWDB |
VIEW ANY DATABASE |
SERVER |
VWDS |
VIEW DATABASE STATE |
DATABASE |
VWSS |
VIEW SERVER STATE |
SERVER |
XA |
EXTERNAL ACCESS ASSEMBLY |
SERVER |
XU |
UNSAFE ASSEMBLY |
SERVER |
Remarks
sys.fn_builtin_permissions is a table-valued function that emits a copy of the predefined permission hierarchy. This hierarchy includes covering permissions. The DEFAULT result set describes a directed, acyclic graph of the permissions hierarchy, of which the root is (class = SERVER, permission = CONTROL SERVER).
sys.fn_builtin_permissions does not accept correlated parameters.
sys.fn_builtin_permissions will return an empty set when it is called with a class name that is not valid.
Permissions
Requires membership in the public role.
Examples
A. Listing all built in permissions
SELECT * FROM sys.fn_builtin_permissions(DEFAULT)
B. Listing permissions that can be set on a symmetric key
SELECT * FROM sys.fn_builtin_permissions(N'SYMMETRIC KEY')
C. Listing classes on which there is a SELECT permission
SELECT * FROM sys.fn_builtin_permissions(DEFAULT)
WHERE permission_name = 'SELECT';