如何从Sqlconnection获取当前用户

时间:2014-05-28 13:49:52

标签: asp.net sqldatasource sqlconnection sqldataadapter

我正在尝试确定我的应用程序用于向我的数据库进行身份验证的用户,有没有办法让我可以获得用于执行sql代码的用户?

string connection = WebConfigurationManager.ConnectionStrings["MyConnString"].ConnectionString;

using (SqlConnection conn = new SqlConnection(connection))
       {
        using (SqlDataAdapter adapter = new SqlDataAdapter())
               {
                   adapter.SelectCommand = new SqlCommand();
                   adapter.SelectCommand.CommandType = CommandType.StoredProcedure;
                   adapter.SelectCommand.CommandText = "MySPName";
                   adapter.SelectCommand.Connection = conn;
                   using (DataSet ds = new DataSet())
                        {
                            try
                            {
                                adapter.SelectCommand.Connection.Open();
                                logULS("Connection Open");
                                //Want to log the user that has the connection open...
                                adapter.Fill(ds);
                                adapter.SelectCommand.Connection.Close();

                              }
                            catch (Exception ex)
                            {
                                logULS(ex.ToString());
                            }
                        }
                    }

2 个答案:

答案 0 :(得分:2)

试试这个:

SELECT CURRENT_USER;
GO

以上内容返回当前用户的名称。查看here

要查看当前连接的用户,您可以使用sp_who

sp_who [ [ @loginame = ] 'login' | session ID | 'ACTIVE' ]

答案 1 :(得分:0)

对数据库执行以下命令

sp_who2

它列出了所有打开的连接,包括登录名和主机名。