select
@@SERVERNAME
,
@@SERVICENAME
,
ORIGINAL_LOGIN
(),
SYSTEM_USER
,
SUSER_NAME
(),
HOST_NAME
(),
HOST_ID
(),
SESSION_USER
,
CURRENT_USER
,
USER
,
USER_NAME
(),
USER_ID
(),
USER_SID
()
select
cast
(
spid
as
varchar
(
5
))+
'/'
+
convert
(
char
(
19
),
login_time
,
121
)+
'/'
+
rtrim
(
hostname
)+
'/'
+
rtrim
(
program_name
)+
'/'
+
rtrim
(
nt_username
)+
'/'
+
net_address
+
'/'
+
rt
rim
(
loginame
)
from
master
.
dbo
.
sysprocesses
where
spid
=
@@SPID
select
spid
,
login_time
,
loginame
,
hostname
,
nt_domain
,
nt_username
,
net_address
,
net_library
,
program_name
from
master
.
sys
.
sysprocesses
where
spid
=
@@SPID
select
*
from
sys
.
dm_exec_connections
where
session_id
=
@@SPID
select
session_id
,
connect_time
,
auth_scheme
,
net_transport
,
client_net_address
,
client_tcp_port
,
connection_id
from
sys
.
dm_exec_connections
where
session_id
=
@@SPID
有几个系统函数可返回用户名和用户
ID
。若要了解这些函数的参数和输出,需要了解
SQL
Server
中使用的名称和
ID
的类型。
登录到
SQL
Server
的每一个用户在
SQL
Server
中都有以下两个级别的名称,每个名称都
与一个唯一的
ID
相关联:
授权登录到
SQL
Server
的每个用户都有一个登录名,
该登录名将授予他们访问
SQL
Server
实例的权限。有两种类型的登录名:
Microsoft Windows
帐户名
通过使用
sp_grantlogin
,
sysadmin
或
securityadmin
固定服务器角色的成员可以授权
各个用户或
Windows
组的
Windows
帐户登录到
SQL
Server
实例。然后,
Windows
帐户标
识的用户或
Windows
组中的任何用户可以使用
Windows
身份验证连接到
SQL Server
实
例。每个
Windows
帐户或组名称都存储在
sys.server_principals
中。
Windows
帐户或
组的
Windows
安全标识符存储在
sys.server_principals.sid
中。
SQL Server
登录名
这些名称将在用户使用
SQL
Server
身份验证登录时使用。
SQL
Server
登录名由
sysadmin
或
securityadmin
固定服务器角色的成员使用
sp_addlogin
来定义的。每个
SQL Server