grant的用法
格式:
grant [权限1],[权限2]
[on <对象类型> <对象名>]
to [用户1],[用户2]
[with grant option]
不同对象类型允许的操作权限
对象 | 对象类型 | 操作权限 |
---|---|---|
属性列与视图 | table | select, insert, update, delete, ALL PRIVILEGES |
基本表 | table | select, insert, update, delete, alter, index, all privileges |
对属性列和视图的操作权限有:查询(select),插入(insert),修改(update),删除(delete)以及四种权限(all privileges)
对基本不的操作权限有:查询(select),插入(insert),修改(update),删除(delete),修改表(alter)和建立索引(index)以及六种权限的总和(all privileges)。
如果指定了with grant option子句,则获得某种权限的用户还可以把这种权限在赋予其他的用户。
这里,让我们重新登录回我们的Windows身份验证。 然后赋予User1和User2对表Students的全部操作。
grant all privileges
on Students
to User1,User2
显示如下:
对于2014版本,all privileges已经不能用了,因为不安全。
下面说点实际点的案例。
1.比如把Reports表的查询权限给所有用户。
使用:
grant select
on Reports
to public
2.把查询Students表和修改Sname的权限授予User3.
使用:
grant select,update(Sname)
on Students
to User3
3.把对表Reports的insert权限赋予User4,并允许他把该权限给其他用户。
grant insert
on Reports
to User4
执行完后,User4将可以把自己的insert权限赋予其他的用户。