因个人对数据库授权命令的喜爱,所以写了这篇文章,一来学会命令的使用,
二来为以后复习之用。
---------------------------------------------------------------------------------------------------------------------
1)授权命令 grant,语法格式(SQL语句不区分大小写):
Grant <权限> on 表名[(列名)] to 用户 With grant option
或 GRANT <权限> ON <数据对象> FROM <数据库用户>
//数据对象可以是表名或列名
//权限表示对表的操作,如select,update,insert,delete
注:授权命令是由数据库管理员使用的,若给用户分配权限时带With grant option子句,
则普通用户获权后,可把自己的权限授予其他用户。
Grant单词翻译:
vt.承认;同意;准许;授予
n.拨款;补助金;授给物(如财产、授地、专有权、补助、拨款等)
vi.同意
2)回收权限 revoke
REVOKE <权限> ON <数据对象> FROM <数据库用户名>
revoke翻译:
vt.撤销,取消;废除 vi.有牌不跟 n.有牌不跟
实战:
因机房装的是SQL2000,因此我测试时使用的是SQL2000
1) 首先我在服务器(local)上添加了一个用户user1,并将其添加了数据库student,
其拥有的权限为public(public为最小权限),截图如下:
其中有一张表为student(下图第四个)
当我们没有给用户 user1分配查询(select)权限时,在查询分析器中用user1登陆数据库student,
其连最基本的查询操作都不能执行,截图如下:
下面我们用授权命令grant给user1添加查询的权限(注意要用管理员账户才能执行以下命令),
截图如下:
将查询操作授权给user1后,用user1再次执行select命令,发现已经可以查询数据了,
截图如下:
当我们想除去用户user1的查询操作时,执行以下命令即可
//回收用户user1对表student的查询权限
revoke select on student from user1
//或 revoke select on student from user1 cascade