T-SQL: SUSER_SNAME vs SUSER_NAME?

前端 未结 2 2053
一整个雨季
一整个雨季 2021-01-17 07:15

The MSDN documentation says for SUSER_SNAME function:

Returns the login identification name from a user\'s security identification number (SID).

<
2条回答
  •  南方客
    南方客 (楼主)
    2021-01-17 08:07

    If you call the function without an argument they will both return the same value. But they do take different arguments:

    • SUSER_SNAME() takes the varbinary(85) SID of a login as argument
    • SUSER_NAME() takes the integer principal_id of a login

    You can verify this like:

    select  suser_name(principal_id)
    ,       suser_name(sid)
    ,       suser_sname(principal_id)
    ,       suser_sname(sid)
    from    sys.server_principals 
    where   name = suser_name()
    

    Only the first and last column will return non-null values.

提交回复
热议问题