数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括grant(授权)、deny(拒绝)、revoke(收回)等语句,在默认状态下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成员才有权利执行数据控制语言
GRANT 的语法结构为:
GRANT [权限] ON [对象名] TO [用户] WITH [授权选项]
--假设SQL Server 中有U1这一用户,把查询学生表的权限授给用户 U1 grant select on 学生 to U1,U2 --假设SQL Server 中有U1和U2用户,把对课程表的全部操作权限授予用户U1和U2 grant all on 课程 to U1,U2 --把对选修表的查询权限授予所有用户 grant select on 选修 to public --假设SQL Server 中有U3用户,把查询学生表和修改学生学号的权限授予用户U3 grant select,update(学号) on 学生 to U3 --假设SQL Server 中有U5用户,把对选修表的insert 权限授予U5用户,并允许将此权限再授予其他用户 grant insert on 选修 to U5 with grant option
REVOKE 的语法结构为:
REVOKE [权限] ON [对象名] FROM [用户]
--把用户U3修改学生学号的权限收回 revoke update(学号) on 学生 from U3 --收回所有用户对选修表的查询 revoke select on 选修 from public --把用户U5对选修表的insert权限收回 revoke insert on 选修 from U5 cascade /* cascade用于若要废除可授予的特权*/