USE tempdb
GO
--创建两个测试表
CREATE
TABLE
tb1(id
int
,value
int
)
INSERT
tb1
VALUES
(1,10)
CREATE
TABLE
tb2(id
int
,value
int
)
INSERT
tb1
VALUES
(1,10)
GO
--创建登录
CREATE
LOGIN Liang
WITH
PASSWORD
=
'myfend@hotmail.com'
;
--创建用户
CREATE
USER
Liang
FROM
LOGIN Liang;
--授予用户对tb1有UPDATE某个列的权限,tb2只有SELECT权限
GRANT
UPDATE
(value)
ON
tb1
TO
Liang
GRANT
SELECT
ON
tb1
TO
Liang
GRANT
SELECT
ON
tb2
TO
Liang
GO
--模拟用户Liang对tb1表进行UPDATE
EXECUTE
AS
USER
=
'Liang'
UPDATE
tb1
SET
value=20
WHERE
id=1
REVERT
SELECT
*
FROM
tb1
/*
id value
----------- -----------
1 20
(1 行受影响)
*/
--模拟用户Liang对tb2表进行UPDATE
EXECUTE
AS
USER
=
'Liang'
UPDATE
tb2
SET
value=20
WHERE
id=1
REVERT
/*
消息 229,级别 14,状态 5,第 23 行
拒绝了对对象
'tb2'
(数据库
'tempdb'
,架构
'dbo'
)的
UPDATE
权限。
*/
GO
--删除测试
DROP
TABLE
tb1,tb2
DROP
USER
Liang
DROP
LOGIN Liang