Skip to content

Latest commit

 

History

History
107 lines (76 loc) · 5.61 KB

File metadata and controls

107 lines (76 loc) · 5.61 KB
title Principals (Database Engine) | Microsoft Docs
ms.custom
ms.date 06/13/2017
ms.prod sql-server-2014
ms.reviewer
ms.technology security
ms.topic conceptual
f1_keywords
sql12.swb.roleproperties.selectroll.f1
sql12.swb.databaseuser.permissions.user.f1--May use common.permissions
helpviewer_keywords
certificates [SQL Server], principals
roles [SQL Server], principals
permissions [SQL Server], principals
##MS_SQLAuthenticatorCertificate##
principals [SQL Server]
##MS_SQLResourceSigningCertificate##
groups [SQL Server], principals
##MS_AgentSigningCertificate##
authentication [SQL Server], principals
schemas [SQL Server], principals
principals [SQL Server], about principals
security [SQL Server], principals
users [SQL Server], principals
##MS_SQLReplicationSigningCertificate##
ms.assetid 3f7adbf7-6e40-4396-a8ca-71cbb843b5c2
author VanMSFT
ms.author vanto
manager craigg

Principals (Database Engine)

Principals are entities that can request [!INCLUDEssNoVersion] resources. Like other components of the [!INCLUDEssNoVersion] authorization model, principals can be arranged in a hierarchy. The scope of influence of a principal depends on the scope of the definition of the principal: Windows, server, database; and whether the principal is indivisible or a collection. A Windows Login is an example of an indivisible principal, and a Windows Group is an example of a principal that is a collection. Every principal has a security identifier (SID).

Windows-level principals

  • Windows Domain Login

  • Windows Local Login

SQL Server-level principals

Database-level principals

  • Database User

  • Database Role

  • Application Role

The SQL Server sa Login

The [!INCLUDEssNoVersion] sa log in is a server-level principal. By default, it is created when an instance is installed. Beginning in [!INCLUDEssVersion2005], the default database of sa is master. This is a change of behavior from earlier versions of [!INCLUDEssNoVersion].

public Database Role

Every database user belongs to the public database role. When a user has not been granted or denied specific permissions on a securable, the user inherits the permissions granted to public on that securable.

INFORMATION_SCHEMA and sys

Every database includes two entities that appear as users in catalog views: INFORMATION_SCHEMA and sys. These entities are required by [!INCLUDEssNoVersion]. They are not principals, and they cannot be modified or dropped.

Certificate-based SQL Server Logins

Server principals with names enclosed by double hash marks (##) are for internal system use only. The following principals are created from certificates when [!INCLUDEssNoVersion] is installed, and should not be deleted.

  • ##MS_SQLResourceSigningCertificate##

  • ##MS_SQLReplicationSigningCertificate##

  • ##MS_SQLAuthenticatorCertificate##

  • ##MS_AgentSigningCertificate##

  • ##MS_PolicyEventProcessingLogin##

  • ##MS_PolicySigningCertificate##

  • ##MS_PolicyTsqlExecutionLogin##

The guest User

Each database includes a guest. Permissions granted to the guest user are inherited by users who have access to the database, but who do not have a user account in the database. The guest user cannot be dropped, but it can be disabled by revoking it's CONNECT permission. The CONNECT permission can be revoked by executing REVOKE CONNECT FROM GUEST within any database other than master or tempdb.

Client and Database Server

By definition, a client and a database server are security principals and can be secured. These entities can be mutually authenticated before a secure network connection is established. [!INCLUDEssNoVersion] supports the Kerberos authentication protocol, which defines how clients interact with a network authentication service.

Related Tasks

The following topics are included in this section of [!INCLUDEssNoVersion] Books Online:

See Also

Securing SQL Server
sys.database_principals (Transact-SQL)
sys.server_principals (Transact-SQL)
sys.sql_logins (Transact-SQL)
sys.database_role_members (Transact-SQL)
Server-Level Roles
Database-Level Roles