我正在寻找在 SQL Server 2008 中唯一标识应用程序用户的不同方法。
为这个问题提供一些背景知识:我使用的 ASP.NET 4 Web 应用程序使用 SQL Server 2008 数据库,从应用程序到数据库的所有连接都有一个 SQL Server 登录名和数据库用户。
我们正在使用 Crystal Reports 开发报告解决方案,用户可以通过该应用程序编写和执行他们自己的报告。水晶报表只能从视图返回数据。每个应用程序用户都将拥有自己唯一的服务器登录名。然后视图使用 SELECT SYSTEM_USER() 来查找登录用户并限制从视图返回的数据。
- 为每个应用程序用户创建不同的登录名和数据库用户是不好的做法吗?这意味着每个 DB 有超过 1000 个用户,跨越多达 80 个数据库(每个登录的创建将通过 T-SQL 处理,而不是手动处理)
- 在数据库中的视图中可以通过哪些其他方式识别用户?
- 我们查看了更改连接字符串以在 Workstation ID 中包含用户 ID,我们可以使用 SELECT HOST_NAME() 来获取 ID,但这似乎是对 Workstation ID 的滥用。
将不胜感激有关如何唯一标识用户的任何其他建议。非常感谢