sql-server - SQL Server 2005/2008 : Identify current user

标签 sql-server sql-server-2005 tsql sql-server-2008 user-management

我有一个 Web 应用程序,它使用 SQL Server 2005 数据库。

我的问题是,该应用程序没有角色管理。因此应用程序总是使用一个默认用户访问数据库。但现在我必须只为当前用户保存和访问一个值。

有什么办法吗?也许类似于 Web 服务器上的 session ?最好的方法是,如果有任何可能从 T-SQL 访问 Web 服务器的当前 session ID。

有人了解我的问题吗? :)

最佳答案

Allows a system-supplied value for the current login to be inserted into a table

DECLARE @sys_usr char(30);
SET @sys_usr = SYSTEM_USER;
SELECT 'The current user is: '+ @sys_usr;
GO

来自 MSDN

在我看来,最好不要这样做。另一种方式:从网络服务器发送到存储过程当前用户:

command.CommandText = "EXEC mySP @user";
command.Parameters.Add("@user").Value = ((YourOwnUserClass)Session["user"]).Name;

// or System.Web.HttpContext.Current.User.Identity.Name; to use built-in
// from web page it becomes this.User.Identity.Name;

关于sql-server - SQL Server 2005/2008 : Identify current user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2605510/

相关文章:

sql - 帮助我将 Oracle 术语转化为 SQL Server 术语

json - 如何从存储在表中的嵌套 JSON 对象返回多行

sql-server - 是否可以在单个分区上运行 DBCC CHECKDB?

sql-server-2005 - 我应该在此 SQL 2005 表上创建唯一聚集索引还是非唯一聚集索引?

Sql Server 2005错误处理-内部异常

sql - 连接 3 个表的查询

c# - 在 SQLCLR 方法中使用 SqlXml 参数

sql-server - 为什么 SQL Server Tuning Advisor 建议将 PRIMARY KEY 添加到索引的包含列?

sql - T-SQL LIKE 条件中的重复字符

sql-server - SQL Server 2005 : T-SQL to temporarily disable a trigger