我在用户 PC 上安装了一个富客户端程序,我想开始在 SQL Azure/SQL Server 上存储一些用户创建的数据。潜在的匿名用户将输入他们的姓名、电子邮件帐户和密码,这些密码将存储在 SQL Azure/SQL Server 上。然后他们将开始生成自己的数据。我预计可能有 1000 个用户。
有时这些用户希望对自己的数据运行自己的查询,但显然,我必须确保他们永远无法查看其他用户的数据。
我认为确保数据安全的最佳方法是为每个用户颁发自己的 SQL Azure 帐户和密码。我将设置一个只有我知道的 SQL Azure 用户和长密码,它只有权执行几个存储过程,并将适当的参数传递给那些将创建 SQL Server 帐户、登录并将用户添加到角色的 SP我创造了。
显然,运行调试工具的人可以找出用户名和密码,但我认为这没什么大不了的。如果该特定 SQL Azure 帐户所能做的就是执行一些 SP,那么如果恶意个人开始这样做怎么办。在我要求付款之前,我只允许上传非常有限的数据。
用户只能使用使用以下内容的存储过程插入记录:
SELECT @uName=SYSTEM_USER
并且只选择适当的父记录。用户可以执行的所有存储过程都将具有上述要求,以确保他们只能使用自己的记录。
所有视图都将嵌入其中的 WHERE 子句,例如
WHERE tbLoginName = SYSTEM_USER.
我是 SQL Server 的新手,所以我可能会遗漏一些基本概念,因此我将不胜感激。