sql-server - SQL Server 中的SYSTEM_USER 和USER 有什么区别?

标签 sql-server tsql

我对数据库很陌生,并且在关键字 SYSTEM_USER 之间感到困惑和 USER在 MSSQL 中。定义说他们在当前上下文中返回用户名。但是我运行的实例为用户返回“dbo”,为系统用户返回“sa”。

有人可以强调两者之间的确切区别吗?

最佳答案

  • SYSTEM_USER返回用于登录实例的服务器登录名(SQL Server 登录名或域/Windows 用户名)。
  • USER , CURRENT_USER , USER_NAME() , 或 SESSION_USER返回数据库用户名(不是当前使用的数据库的 DB_Owner)。

  • 注:USER_NAME([user_id])还可以使用 int-user-id,默认参数为 1,即:USER_NAME(1)将与 USER_NAME() 相同.

    例子:
    SELECT SYSTEM_USER      --> myDomain\user.name
    
    SELECT USER             --> dbo
    SELECT CURRENT_USER     --> dbo 
    SELECT USER_NAME()      --> dbo
    SELECT SESSION_USER     --> dbo
    

    关于sql-server - SQL Server 中的SYSTEM_USER 和USER 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22113653/

    相关文章:

    sql - 将 smalldatetime 数据类型转换为 varchar 数据类型

    sql - 更改从 SQL Server 数据库获取的数据值

    sql - 无法从命名空间读取 xml 节点

    格式化日期时 NodeJS 小时内的 SQL 查询关闭

    java - Azure混合连接不使用java作为后端代码连接sql server数据库实例

    c# - 将 datetime2 数据类型转换为 datetime 数据类型会导致值超出范围

    sql - 如何更新TOP 400?

    xml - 使用 sqlcmd ":r"将 XML 文件的内容获取到变量中

    sql - 将交易记录分组到一个单元格中

    sql-server-2005 - 忽略T-SQL中的XML namespace