3

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

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

有没有办法做到这一点?也许类似于 Web 服务器上的会话?最好的方法是,如果有任何可能从 T-SQL 访问 Web 服务器的当前会话 ID。

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

4

2 回答 2

5

允许将系统提供的当前登录值插入到表中

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;
于 2010-04-09T07:04:26.090 回答
-1

如果您使用的是 Windows 集成身份验证而不是 SQL 帐户:

  1. 将架构对象权限授予 Windows,而不是用户。然后将所有应用程序用户添加到该组。
  2. 使用内置SUSER_NAME()函数检索底层 Windows 用户名(loginDomain\userName格式为 .
于 2010-04-09T07:12:16.037 回答