Sql server SQL用户名()windows身份验证
当我使用windows身份验证登录sql management studio并运行Sql server SQL用户名()windows身份验证,sql-server,Sql Server,当我使用windows身份验证登录sql management studio并运行 SELECT USER_NAME() 我看到的结果是dbo 我想它会向我的用户展示 我更详细地了解了它返回dbo的原因,并使用它 SELECT SUSER_NAME() :从指定的标识号返回数据库用户名 :返回用户的登录标识名。请尝试: 选择SUSER_SNAME()我也有类似的问题,问题是由于用户id的创建方式 在安全->右键单击属性->服务器角色下选择登录id。确保只单击“Public”而不单击“sysa
SELECT USER_NAME()
我看到的结果是dbo
我想它会向我的用户展示
我更详细地了解了它返回dbo的原因,并使用它
SELECT SUSER_NAME()
:从指定的标识号返回数据库用户名
:返回用户的登录标识名。请尝试:
选择SUSER_SNAME()我也有类似的问题,问题是由于用户id的创建方式
在安全->右键单击属性->服务器角色下选择登录id。确保只单击“Public”而不单击“sysadmin”我更感兴趣的是它为什么显示dbo。你知道它为什么返回dbo吗?@pdiddy-你期望它返回什么?此函数将返回数据库用户名-即来自
sysusers
的值。当您登录到服务器时,我是否可以作为数据库用户登录到Management studio?@pdiddy-通过提供服务器登录的凭据进行登录。您不以特定数据库用户的身份登录。这些服务器登录已映射到0..n个数据库用户。如果您是系统管理员,您将自动映射到所有数据库中的dbo用户。很好的解释。但是在我登录的服务器角色中,我看不到系统管理员被检查,而是公共的。@anish-不太清楚。我说了SUSER\u NAME
。不确定它与SUSER\u SNAME有何不同我的是SUSER\u SNAME;它们似乎可以互换。Martin的回答是,首先应该被认为是正确的。我快速查看了一些SQL Server 2000帮助,发现了以下注释:在Microsoft®SQL Server中使用SUSER_NAME时,始终返回NULL™ 2000此系统内置功能仅用于向后兼容。改用SUSER_SNAME。在中未提及弃用。不知道他们是否决定保留它。