我正在尝试在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。我的方法会起作用还是应该改变什么?
答案 0 :(得分:1)
您创建了服务器级主体(Login),然后创建了数据库级主体(用户)并修改了它的权限;如果你不熟悉差异,here was a question on that。
在您的示例中,您映射了TestUser
- &gt; TestDB
上的TestLogin
;这意味着TestUser
将具有您分配给TestDB
的权限级别,因为您已连接到font-awesome-rails
。 (因此,您将拒绝DELETE到连接字符串中定义的连接。)
至于关于迁移的评论中的问题 - 通过此连接字符串执行时,据我所知,它应该失败。