User_Name() - Database Level Security Principal of Your Session in SQL Server


What Is the Security Principal at the Database Level That Represents Your Session in SQL Server?



Security principal identifies who you are when you interact with the SQL Server. What can do you at the database solely depends on the security principal that represents you. So it is very important to know your security principal at the database level.

What is the database level security principal of your session? The answer is simple - the user name in the current database that has been mapped to your login name. For example, if you connects to the server with the login name "sa", and sets "FyiCenterData" as the current database, SQL Server will map "sa" to a user name defined in "FyiCenterData" based on some logics. That mapped user name is your security principal for "FyiCenterData" at the database level.

On a Unix system, there is a nice command called "whoami" which returns your security principal on the system. SQL Server provides a similar function called User_Name(), which returns your security principal (a user name mapped to the login name) at the database level. Try it by following this tutorial example:

PRINT Suser_Sname();

USE FyiCenterData;

-- Find out your security principal at the database level
PRINT User_Name();

This example shows you that "dbo" is user name in "FyiCenterData" that mapped to login name "sa".


⇒Managing Security, Login and User in SQL Server

⇒⇒SQL Server Database Tutorials

2016-10-20, 1654👍, 0💬