我在C#和SQL Server中构建了一个应用程序。是否可以从应用程序中获取SQL Server中存储过程中登录用户的用户名?不将它作为参数传递给存储过程?我希望应用程序用户的用户名不是SQL Server用户。
我尝试了suser_name()
但它返回了SQL Server用户。
我想要表格中的用户名:dbo.aspnet_Users
答案 0 :(得分:2)
是的,有瑕疵。就SQL Server而言,该表与身份验证无关。这是应用程序数据,就像任何其他应用程序数据一样。 SQL Server的透视图中的“用户”是在应用程序正在使用的连接字符串中指定的任何身份验证。我想要表格中的用户名:
dbo.aspnet_Users
由于这是应用程序数据,因此应用程序需要告诉SQL Server如何处理此数据。在这种情况下,这意味着为存储过程提供要使用的值。该值是否为用户名字符串,该表中用作外键的标识符等等......就SQL Server而言,它只是数据表中的值,与其他任何值一样。
简而言之,SQL Server无法推断您想要使用的值。你必须指定它。