Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 什么';根据自定义权限级别控制sql查询的最佳方法是什么?_C#_Sql Server_Security_Encryption - Fatal编程技术网

C# 什么';根据自定义权限级别控制sql查询的最佳方法是什么?

C# 什么';根据自定义权限级别控制sql查询的最佳方法是什么?,c#,sql-server,security,encryption,C#,Sql Server,Security,Encryption,我正在构建一个web应用程序,将敏感的医疗信息存储到启用了TDE的数据库中。但是,我的用户分为3类: 到处都能找到的医生 只能查看特定页面和访问特定表/视图的管理人员 IT人员,他们将登录并需要访问SQL Server中的其他数据库,以加载一些虚拟数据,以便进行故障排除 首先想到的是创建一个用户管理系统。我通过要求用户输入他们自己的私人密码创建了一个,但我不确定应该保护什么。因此,我尝试使用AES和我提供给每个medic的密码对SQL连接字符串进行加密,并将加密字符串保存到不同数据库的表中 当他

我正在构建一个web应用程序,将敏感的医疗信息存储到启用了
TDE
的数据库中。但是,我的用户分为3类:

  • 到处都能找到的医生

  • 只能查看特定页面和访问特定表/视图的管理人员

  • IT人员,他们将登录并需要访问
    SQL Server
    中的其他数据库,以加载一些虚拟数据,以便进行故障排除

  • 首先想到的是创建一个用户管理系统。我通过要求用户输入他们自己的私人密码创建了一个,但我不确定应该保护什么。因此,我尝试使用
    AES
    和我提供给每个medic的密码对
    SQL
    连接字符串进行
    加密,并将加密字符串保存到不同数据库的表中

    当他们启动应用程序时,它将请求他们的密码,然后密码将
    解密相应的连接字符串,将其存储在
    cookie中
    并使用
    Machine.protect()对其进行保护
    asp.net 4.5

    通过这种方式,我可以使用页面权限,仅允许医务人员访问具有特定报告的特定页面。允许管理层查看他们自己的页面,第三,当IT人员进入时,他将拥有自己的密钥,该密钥将
    解密
    一个不同的连接字符串,以连接到一个虚拟数据库,这样他就可以进行故障排除

    这是一种安全的方法还是可以轻易利用?我很想得到任何关于这方面的反馈


    SQL server
    的所有代码调用都位于单个类库
    dll
    ,使用的语言为:
    asp.net
    c
    ,我们首先使用Active Directory限制访问。

    不要加密连接字符串并将其存储在cookie中。这不是一个好主意。相反,您应该在用户登录时(根据您的用户ID/哈希密码表)对其进行身份验证,并将会话令牌作为cookie发出。令牌将有一个过期日期。浏览器将为所有请求发送此令牌,您可以在数据库中查找令牌以检查其是否有效、用户ID是谁等。然后将用户ID传递给数据访问层。让DAL根据用户ID/类别检查用户权限。@Mangist谢谢我正在研究这个问题,但我仍然不确定如何为IT用户组创建第二个查询字符串,例如。这将在DAL中管理吗?在Users表中,您应该有一个UserType(1、2或3)。然后,您的数据访问层类应该检查这个用户类型,当它创建SqlConnection时,如果UserType==3 user,则检查您的测试数据库,否则使用生产数据库。有很多使用您自己的用户表对ASP.NET网站进行自定义身份验证的示例,这非常好,非常感谢,我将详细阅读