美好的一天。我解释一下我的情景。有两个用户(user1和user2)。我在SQL服务器中有一个表(tblTest),有3列(f1,f2,f3)。我想做的是以下几点:
拒绝UPDATE
到第f2列并将UPDATE
授予user1
的第f1和f3列。
将UPDATE
授予第f2列并拒绝UPDATE
到user2
的第f1和f3列。
目前我仍然坚持第1步。
这就是我所做的:
在SQL Server中,我选择了tblTest => Properties => Permissions
,选择了user1。
In" user1"的权限;在底部=>然后更新"列权限"按钮,在Deny上检查f2,为f1和f3检查。
然后我使用user1
的凭据访问了SQL Server,并尝试更新此表中的一行。
显然命令失败了:
列&f 39' UPDATE权限被拒绝对象' TblTest',数据库' dbremarksSQL',架构' dbo'。
到目前为止,一切都有效。我的问题是其他列也没有更新。我希望更新命令至少更新f1和f3列,并拒绝更新到f2(保持原样)。
这可能吗?
谢谢
btw我使用的是SQL Server 2014 Management Studio。
答案 0 :(得分:2)
您可以尝试这样:
GRANT UPDATE ON dbo.tblTest(f1,f3) TO user1;
DENY UPDATE ON dbo.tblTest(f2 ) TO user1;
答案 1 :(得分:0)
你试过这个:
grant update(column-name) on table-name to user-name