在SQL Server中创建用户并在web.config文件中使用该用户?

时间:2016-06-07 19:53:06

标签: sql sql-server azure web-config azure-sql-database

我正在尝试在SQL Server中创建用户。我可以创建用户,然后我授予该用户一些权限。这是代码:

CREATE LOGIN TestLogin WITH password='abc';

 -- Now add user to database
USE TestDB;
CREATE USER TestUser FOR LOGIN TestLogin;
GO

use [TestDB]
GO
GRANT INSERT TO [TestUser]
GO
use [TestDB]
GO
GRANT SELECT TO [TestUser]
GO
use [TestDB]
GO
GRANT UPDATE TO [TestUser]
GO
use [TestDB]
GO
DENY DELETE TO [TestUser]
GO

在此之后我想在我的web.config文件中使用此用户。

<add name="DBConnectionString"
     connectionString="Server=tcp:abc.database.windows.net;Database=TestDB;User ID=TestLogin;Password=abc;Trusted_Connection=False;Encrypt=True;MultipleActiveResultSets=True;" 
     providerName="System.Data.SqlClient" />

我的问题是:在web.config文件中,我必须使用LOGIN用户。当我应用迁移时,我不想运行任何DELETE语句,所以我创建了一个USER并拒绝他访问。我可以在web.config文件中使用此用户吗?

我的目标是在应用迁移时,我不想执行DELETE。我的方法会起作用还是应该改变什么?

1 个答案:

答案 0 :(得分:1)

您创建了服务器级主体(Login),然后创建了数据库级主体(用户)并修改了它的权限;如果你不熟悉差异,here was a question on that

在您的示例中,您映射了TestUser - &gt; TestDB上的TestLogin;这意味着TestUser将具有您分配给TestDB的权限级别,因为您已连接到font-awesome-rails。 (因此,您将拒绝DELETE到连接字符串中定义的连接。)

至于关于迁移的评论中的问题 - 通过此连接字符串执行时,据我所知,它应该失败。