SQL Server常用授权语句

--1,授权表查询权限
--GRANT SELECT ON object::tabel1 To su1
GRANT SELECT ON tabel1 To su1

--2,取消授权表查询权限,有REVOKE(撤回)和DENY(拒绝)两种。二者引发的权限报错信息一致。一般撤销授权应使用REVOKE;拒绝用户某种操作使用DENY;
--DENY:拒绝后,权限表中该权限ProtectType为Deny(不允许使用该权限);DENY 优先于所有权限,但 DENY 不适用于 sysadmin角色
--REVOKE:撤回后,权限表中该权限直接消失;可撤回ProtectType为Deny的权限;
DENY SELECT ON tabel1 To su1	--拒绝(不允许)su1使用SELECT权限
REVOKE SELECT ON tabel1 To su1	--撤销(删除)su1的SELECT授权,不论授予还是拒绝

--3,授权存储过程运行权限(不需要对存储过程中涉及表授权)
--GRANT EXECUTE ON object::sp1 TO su1
GRANT EXECUTE ON sp1 TO su1

--4,取消授权存储过程
REVOKE EXECUTE ON sp1 TO su1

--5,查看用户su1的权限
EXEC sys.sp_helprotect NULL,su1

--6,授予所有对象SELECT权限
GRANT SELECT To su1

--7,以指定用户上下文运行(切换用户并以该用户权限运行)
EXEC AS USER='su2'
GO

--8,允许/不允许用户定义表(修改表的结构)
GRANT VIEW DEFINITION ON table1 to su1
DENY VIEW DEFINITION ON table1 to su1

--9,允许/不允许用户定义存储过程/视图
GRANT VIEW DEFINITION ON sp1 to su1
DENY VIEW DEFINITION ON sp1 to su1

GRANT VIEW DEFINITION ON view1 to su1
DENY VIEW DEFINITION ON view1 to su1

posted @ 2022-07-13 17:00  hhlotus  阅读(4036)  评论(0编辑  收藏  举报